import torch.nn as nn
import torch
import torch.optim as optim
m = torch.randn((2,3,6))
class Abc(nn.Module):
def __init__(self):
super().__init__()
self.relu = nn.Linear(18,1)
def forward(self,x):
x = x.view(2,-1)
print(x.shape)
x = self.relu(x)
return x
m = torch.autograd.Variable(m,requires_grad=True)
mo = Abc()
optimizer = optim.Adam([m])
loss_fun = nn.MSELoss()
target = torch.autograd.Variable(torch.randn(2,1)).float()
out = mo(m)
loss = loss_fun(out,target)
optimizer.zero_grad()
loss.backward()
optimizer.step()
当m的requires_grad=True并且优化器中为m时才会改变m的值,风格迁移就是不断改变改变输入的图片,并使优化器不断优化。