我正在尝试使用预先训练的模型。这是发生问题的地方
模型不是应该采用简单的彩色图像吗?为什么要输入4维?
extends Model
哪里
extends object
答案 0 :(得分:4)
在卷积层上的Pytorch documentation中,Conv2d
层期望输入的形状为
(n samples, channels, height, width) # e.g., (1000, 1, 224, 224)
以常规格式( 224,224 )传递灰度图像不起作用。
要获得正确的形状,您将需要添加通道尺寸。您可以按照以下步骤进行操作:
x = np.expand_dims(x, 1) # if numpy array
tensor = tensor.unsqueeze(1) # if torch tensor
对于彩色图片,这会稍微复杂一些。假设您使用
格式(n samples, height, width, channels) # e.g., (1000, 224, 224, 3)
您将需要在高度和宽度之前放置最后一个尺寸(通道)。
x = x.transpose(0, 3, 1, 2) # if numpy array
tensor = tensor.permute(0, 3, 1, 2) # if torch tensor
您将获得正确的格式,例如( 1000、3、224、224 )。
答案 1 :(得分:0)
正如Usman Ali在他的评论中所写,pytorch(和大多数其他DL工具箱)期望图像的批处理作为输入。因此,您需要致电
return
在输入import re
films = ["The.Eternal.Evil.of.Asia.1995.DVDRip.x264.AC3", "Guzoo.1986.VHSDVDRiP.x264.AC3.HS.ES-SHAG"]
for film in films:
print(re.sub(r'(.*)VHSDVDRiP.*|DVDRip.*', r'\1', film))
中插入单例“批量”维度。
请注意,您使用的模型可能会期望输入尺寸(3x229x229)而不是3x224x224。