使用backward反传时报错(使用啦预训练模型)
收藏
就是我自己的网络可以得出一个A数组, 预训练的VGG可以事先得出一个 B数组, 我让我的A数组经过VGG得到A*数组,通过A*与B之间的误差来调整我自己的网络(类似风格迁移).现在backward报错是空的.各位大佬有何见解?下面是逻辑代码.
#调用预训练网络 VGG16
pretrain_net = vgg16(pretrained = True)
# 选取前24层 叫做net
# net[0](RGB) 即RGB图像在第0层的输出
net = nn.Sequential(*[ pretrain_net.features[i] for i in range(25)])
#自己训练的网络 Re_net ,可以输出一个 RGB
Re_RGB = Re_net()
#误差函数
l = MSE( net[0](RGB), net[0](Re_RGB))
l.backward #这一步报错
0
收藏
请登录后评论
不能直接操作动态图里面的数据,应该要在行定义变量使用net和re_rgb后面分别加上 .detach(),把这两个数从动态图里拿出来操作。
问题解决了,谢谢大佬!