# 展示数据
def im_convert(tensor):
'''展示数据'''
image = tensor.to("cpu").clone().detach()
image = image.numpy().squeeze()
image = image.transpose(1,2,0)
image = image * np.array(0.229,0.224,0.225) + np.array((0.485, 0.456, 0.406))
image = image.clip(0,1)
return image
fig=plt.figure(figsize=(20,12))
columns = 4 #列
rows = 2 #行
dataiter = iter(dataloaders['valid'])
inputs,classes = dataiter.__next__()
for idx in range(columns*rows):
ax = fig.add_subplot(rows,columns,idx+1,xticks=[],yticks=[])
ax.set_title(cat_to_name[str(int(class_names[classes[idx]]))])
plt.imshow(im_convert(inputs[idx]))
plt.show()
翻译一下就是:Array()接受1到2个位置参数,但给出了3个
找到定义的函数中的
image = image * np.array(0.229,0.224,0.225) + np.array((0.485, 0.456, 0.406))
这一行,前一个位置参数只有一个括号表示接受了三个参数,错误;后一个位置参数加了两个括号表示只接受了一个参数,正确。
所以只要前一个参数加两个括号就行了。
# 展示数据
def im_convert(tensor):
'''展示数据'''
image = tensor.to("cpu").clone().detach()
image = image.numpy().squeeze()
image = image.transpose(1,2,0)
image = image * np.array((0.229,0.224,0.225)) + np.array((0.485, 0.456, 0.406))
image = image.clip(0,1)
return image
fig=plt.figure(figsize=(20,12))
columns = 4 #列
rows = 2 #行
dataiter = iter(dataloaders['valid'])
inputs,classes = dataiter.__next__()
for idx in range(columns*rows):
ax = fig.add_subplot(rows,columns,idx+1,xticks=[],yticks=[])
ax.set_title(cat_to_name[str(int(class_names[classes[idx]]))])
plt.imshow(im_convert(inputs[idx]))
plt.show()