有没有大神帮我看看我的代码错在哪里
pytorch吧
全部回复
仅看楼主
level 2
有没有大神帮我看看我的代码错在哪里
import torch
import torch.nn as nn
import torch.utils.data as Data
import torchvision
import matplotlib.pyplot as pl
import torch
import torchvision
import torchvision.transforms as transforms
from torch.autograd import Variable
from torch.utils.data import DataLoader
data_transform = transforms.Compose([
transforms.Resize(224),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5, 0.5, 0.5],
std=[0.5, 0.5, 0.5])
])
train_dataset = torchvision.datasets.ImageFolder(root='C://Users//Administrator//Desktop//train_photos',transform=data_transform)
train_loader = torch.utils.data.DataLoader(train_dataset,batch_size=16, shuffle=True,num_workers=4)
class CNN(nn.Module):
def __init__(self):
super(CNN,self).__init__()
self.conv1 = nn.Sequential(
nn.Conv2d(
in_channels=3,
out_channels=32,
kernel_size=5,
stride=1,
padding=2,
),#32,224,224
nn.ReLU(),
nn.MaxPool2d(kernel_size=2),#32,112,112
)
self.conv2=nn.Sequential(
nn.Conv2d(32,64,5,1,2),#64,112,112
nn.ReLU(),
nn.MaxPool2d(2),#64,56,56
)
self.conv3=nn.Sequential(
nn.Conv2d(64,128,5,1,2),#128,56,56
nn.ReLU(),
nn.MaxPool2d(2),#128,28,28
)
self.out=nn.Linear(128*28*28,2)
def forward(self,x):
x=self.conv1(x)
x=self.conv2(x)
x=self.conv3(x)
x=x.view(x.size(0),-1)
output=self.out(x)
return output
cnn=CNN()
optimizer=torch.optim.Adam(cnn.parameters(),lr=0.001)
loss_func=nn.CrossEntropyLoss()
for step,(x,y) in enumerate(train_loader):
b_x=Variable(x)
b_y=Variable(y)
output=cnn(b_x)
loss=loss_func(output,b_y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
torch.save(cnn,'cnn.pkl')
这段代码用于图像分类,种类有两种
出现的错误是:
userWarning: This overload of add_ is deprecated:
add_(Number alpha,Tensor other)
Consider using one of the following signatures instead:
add_(Tensor other,number alpha)
为什么出错了,哪里出错了,怎么改呢?大神们帮帮我吧[乖]
2020年02月11日 10点02分 1
level 1
请问你解决了吗? 我也遇到这个问题了
2020年06月16日 09点06分 2
level 1
同遇到了这个问题,
lz
怎么解决的
2020年07月22日 13点07分 3
@蓝星AI兔⚡ 我也报这个错了,但是貌似代码可以正常的跑下来~
2020年07月22日 15点07分
@贴吧用户_7WD7ttR 我的也是
2020年07月22日 20点07分
@贴吧用户_7WD7ttR 正常的,没错,继续用就行[太开心]
2020年07月22日 20点07分
好哒~那就放心啦![吐舌]~
2020年07月23日 01点07分
level 1
这只是警告,还可以跑。add_(Number alpha,Tensor other)这种模式要弃用了,建议换成add_(Tensor other,number alpha)
2020年09月02日 16点09分 4
请问被弃用的在哪里改呢?信息台窗口没有报出来自己py文件中具体那一句代码...
2021年01月11日 14点01分
level 1
add_(Number alpha,Tensor other)这种模式已经弃用了,要换成add_(Tensor other,number alpha)。
但是我换过来之后还是用不了,然后我用了关键字传参就可以了:
p.data.add_(p.grad.data, alpha=-learning_rate)
2021年04月01日 14点04分 5
我这样写之后就直接报错了 说是只能接受一个参数 但是我给了两个参数
2021年04月14日 07点04分
解决了 直接在中间加个*就可以了。
2021年04月14日 07点04分
你是这样的吗 p.data.add_(p.grad.data, *, alpha=-learning_rate)
2021年05月19日 07点05分
@阿法里斯人 我也这样改的,然后直接报错了。。
2021年06月01日 09点06分
level 8
只要没终止,就不用管[哈哈]
2022年03月08日 07点03分 6
1