首页 > 编程知识 正文

python copy deepcopy,softmax函数曲线

时间:2023-05-03 10:03:52 阅读:49865 作者:1388

softmax函数

代码importnumpyasnpimporttorchfromtorchimportnn,optimfromtorch.autogradimportvariablefromtorchvisionimportdatasets, transformsfromtorch.utils.dataimportdataloader #训练集train _ data=datasets.Mn ist (根='./',#仓库train=#加载训练集transform=transforms.ToTensor ()并将#数据转换为tensor类型download=True # 下载)测试集test_data=datasets.mnist ) root=' datasets.Mn ist transform=transforms.to tensor (, download=True )批量大小batch_size=64# )负载训练集train_loader=dataloader ) dataset=shuffle=True(#测试集TTT 加载batch_size=batch_size,shuffle=true ) )的labels=dataprint(inputs.shape ) print (labels.shape ) break

#定义网络结构的classnet(nn.module ) :def___init__(self ) :super ) net, self )._init_ ) #初始化self.fcce 10 ) # 784输入10输出self.softmax=nn.softmax(dim=1)激活函数dim=1是对于第一个维的概率计算def forwer x )表示:#torch.size () )的784 ) x=x.view(x.size ) ) [0], -1)四维可变二维(全连接层上的计算仅限二维) x=self.fc1(x ) x (传递给全连接层继续计算x=self.softmax(x ) x ) )使用softmax激活函数返回x # 计算)模型模型=net ) )的成本函数MSE_loss=nn.mseloss(#定义优化程序optimizer=optim.SGD (model.parameters ), lr=0.5 ) #定义模型的训练和测试方法def train ) ) 333333 datain enumerate (train _ loader ) : #获取一批数据和标签inputs,labels 10 ) out=model(inputs ) # to onehot将数据标签作为单独热代码的labels=labels.reshape (-1,1 ) #首先一维为二维(64 )-) 64, 1 )属于Tensor.sccor )的SRC(#dim:将该维单独热编码(index ) src的相应值置于tensor位置)的src )索引的数值one _ hot=torch.zzor 1 )计算loss mse_loss中两个数据的shape与loss=MSE_loss(out )匹配,并使用one_hot(#零梯度optimizer.zero_grad ) #计算梯度修改权值optimizer.step ) (def test ) ) : correct=0ff datain enumerate (test _ loader ) : # )获取一批数据和标签inputs,并输入latad 10 )获取out=model ) inputs ),获取最大值和predicted=Torch.max(out,1 ) #准确数量correct=(predicted==labels ).sum ) prect

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。