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)
为什么出错了,哪里出错了,怎么改呢?大神们帮帮我吧
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)
为什么出错了,哪里出错了,怎么改呢?大神们帮帮我吧
