【发布时间】:2021-11-29 15:31:54
【问题描述】:
我正在对图像进行预测,以便在 for 循环中进行对象检测。 我实际上遇到了与 tensorflow 相同的问题,并希望我可以用 pytorch 解决它。 至少现在看来我已经发现了问题所在(天真地假设它与 tensorflow 相同)
我是这样预测的
model = detection.fasterrcnn_resnet50_fpn(pretrained=True,
progress=True,pretrained_backbone=True).to(DEVICE)
for i in tqdm(range(train.shape[0])):
image = cv2.imread(train_img_paths[i])
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
image = image.transpose((2, 0, 1))
image = image / 255.0
image = np.expand_dims(image, axis=0)
image = torch.FloatTensor(image)
image = image.to(DEVICE)
predictions = model(image)[0]
现在通过垃圾收集器,我发现每个图像都保留在图表中。 有办法避免吗?
我无法将数据加载器或数据集与检测模型一起使用(与 tensorflow hub 相同)
【问题讨论】:
-
predictions被定义后你在做什么? -
使用
torch.from_numpy()而不是torch.FloatTensor() -
@Ivan predicions 是一本字典
-
它针对 numpy 数组进行了优化。我也不确定您是否需要设置
model.eval()以及是否需要使用with torch.no_grad():包装代码 -
那是因为torch.from_numpy。使用
image = torch.from_numpy(image).float()将图像投射到浮点数
标签: pytorch torchvision