以下是我的代码,运行后出现Boolean value of Tensor with more than one value is ambiguous的错误,请问该如何修改呢?
import time
import torch
from torch import nn,optim
import sys
sys.path.append("C:/Users/zyx20/Desktop/深度学习编程/pythonProject")
import d2lzh_pytorch as d2l
#定义NIN块
def nin_block(in_channels,out_channels,kernel_size,stride,padding):
blk=nn.Sequential(nn.Conv2d(in_channels,out_channels,kernel_size,stride,padding),
nn.ReLU(),
nn.Conv2d(out_channels,out_channels,kernel_size=1),
nn.ReLU(),
nn.Conv2d(out_channels,out_channels,kernel_size=1),
nn.ReLU())
return blk
class GlobalAvgPool2d(nn.Module):
def __init__(self):
super(GlobalAvgPool2d,self).__init__()
def forward(self,x):
return torch.nn.functional.avg_pool2d(x,kernel_size=x.size()[2:])
net=nn.Sequential(
nin_block(1,96,kernel_size=11,stride=4,padding=0),
nn.MaxPool2d(kernel_size=3,stride=2),
nin_block(96,256,kernel_size=5,stride=1,padding=2),
nn.MaxPool2d(kernel_size=3,stride=2),
nin_block(256,384,kernel_size=3,stride=1,padding=1),
nn.MaxPool2d(kernel_size=3,stride=2),
nn.Dropout(0.5),
nin_block(384,10,kernel_size=3,stride=1,padding=1),
GlobalAvgPool2d(),
d2l.FlattenLayer())
#训练模型
batch_size=128
train_iter,test_iter=d2l.load_data_fashion_mnist(batch_size,resize=224)
#训练
lr,num_epochs=0.002,5
optimizer=torch.optim.Adam(net.parameters(),lr=lr)
d2l.train_ch5(net,train_iter,test_iter,num_epochs,batch_size,optimizer,num_epochs)