风格迁移
1、从VGG网络中提取出图像第 3,5,7,11,13层特征
def extract_features(X):
contents = []
for i in range(len(net)):
X = neti
if i in [3,5,7,11,13]:
contents.append(X)
return contents
2、forward函数的构建方式及理由
在风格转换中,合成图像是训练过程中唯一需要更新的变量。 因此可以定义模型SynthesizedImage,并将合成的图像作为模型参数。由于是唯一需要更新的变量,可以将其抽象成已经有了一个函数,我们需要做的是找到这个函数的零点,损失函数相当于函数f(·),而图像就是变量x,在风格迁移的过程中等价于找到满足f(x)=0的x的值。
3、为何在计算content_loss和style_loss的时候,需要对一个tensor进行detach操作
因为计算content_loss和style_loss时,仅仅需要利用的VGG网络中已经训练好的权重,而不需要构建计算图和利用链式法则连训练网络权重,此时要训练的只是合成图像这唯一变量。
4、其它生成图像