本论文为了本人学习pytorch的分类问题,写了简单的代码
importnumpyasnpfromcollectionsimportcounterfromsklearnimportdatasetsimporttorch.nn.functionalasfunfromtorch.autogradimpon ttorch#数据准备dataset=datasets.load _ iris (data ut=dataset [ ' data ' ] priciple=dataset input=torch.float tensor ) ) label=torch.longtensor ) dataset [“target”] # BP神经网络classnet ) tataset )的n_feature,n_hidden,n self )._ init _ _ (self.hidden=torch.nn.linea ar n _ hidden (# hiddenlayerself.out=torch.nn.linear ) x ) :x=fun.relu(self.hidden(x ) ) activationfunctionforhiddenlayerwechoosesigmoidx=self.out ) returnxnnnnn n _ output=3(optimizer=torch.optim.SGD (net.parameters ),lr=0.02 ) #SGD:随机坡度下降Loss_ ) )。 [在此处插入图像描述]训练数据fortin range (500 (: out=net ) (input ) inputxandpredictbasedonxloss=loss _ func (label (#输出与label相比为optimizer.zero_grad ) # cleargradientsfornexttrainloss computegradientsoptimizer.step (# applygradientsout=net ) input ) (out为fun.softmax ) out )可以转换为概率矩阵prediction=的计算矩阵1返回index 0并返回原始值pred _ y=prediction.data.numpy (target _ y=label.data.numpy ) accuracy=float ) (ploat )