windows下在pycharm中安装pytorch的一些问题

作者: 0cfb9da2ab77 | 来源:发表于2020-09-23 22:17 被阅读0次

    初次在pycharm中安装pytorch踩了不少坑,做一个记录进行总结。

    一,安装pycharm的过程就不写了,首先打开官网https://pytorch.org/,根据自己的实际需要选择版本:

    其中CUDA版本号查询方法如下:

    1.打开NVIDIA控制面板

    2.打开系统信息

    3.点击组件查看,版本号10.2

    4.复制此段代码:

    pip install torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

    在pycharm终端执行该段代码

    1.6.0版本又一个多G,慢慢等待

    5.下载完毕之后本以为没问题了结果报错:ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users

    经关一系列的尝试和baidu,最终找到了一个解决方法,在pip install 后面加上--user,以上安装代码改为

    pip install --user torch===1.6.0 torchvision===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

    最后安装成功

    6.最后在别人的博客里面找到了一个测试代码:

    ```

    import torch

    import torch.nn as nn

    import torch.nn.functional as F

    import torch.optim as optim

    from torchvision import datasets, transforms

    from torch.autograd import Variable

    # Training settings

    batch_size= 64

    # MNIST Dataset

    train_dataset= datasets.MNIST(root='./mnist_data/',

                                                      train=True,

                                                      transform=transforms.ToTensor(),

                                                      download=True)

    test_dataset= datasets.MNIST(root='./mnist_data/',

                                                     train=False,

                                                     transform=transforms.ToTensor())

    # Data Loader (Input Pipeline)

    train_loader= torch.utils.data.DataLoader(dataset=train_dataset,

                                                                      batch_size=batch_size,

                                                                      shuffle=True)

    test_loader= torch.utils.data.DataLoader(dataset=test_dataset,

                                                                     batch_size=batch_size,

                                                                     shuffle=False)

    class Net(nn.Module):

          def __init__(self):

               super(Net,self).__init__()

               self.l1= nn.Linear(784,520)

               self.l2= nn.Linear(520,320)

               self.l3= nn.Linear(320,240)

               self.l4= nn.Linear(240,120)

               self.l5= nn.Linear(120,10)

         def forward(self,x):

            # Flatten the data (n, 1, 28, 28) --> (n, 784)

              x= x.view(-1,784)

              x= F.relu(self.l1(x))

              x= F.relu(self.l2(x))

              x= F.relu(self.l3(x))

              x= F.relu(self.l4(x))

              return F.log_softmax(self.l5(x))

              #return self.l5(x)

    model= Net()

    optimizer= optim.SGD(model.parameters(),lr=0.01,momentum=0.5)

    def train(epoch):

        # 每次输入barch_idx个数据

        for batch_idx, (data, target)in enumerate(train_loader):

            data, target= Variable(data), Variable(target)

            optimizer.zero_grad()

            output= model(data)

           # loss

            loss= F.nll_loss(output, target)

            loss.backward()

         # update

            optimizer.step()

            if batch_idx% 100 == 0:

                print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(

                    epoch, batch_idx* len(data),len(train_loader.dataset),

                    100. * batch_idx/ len(train_loader), loss.item()))

    def test():

        test_loss= 0

        correct= 0

        # 测试集

        for data, targetin test_loader:

            data, target= Variable(data,volatile=True), Variable(target)

            output= model(data)

            # sum up batch loss

            test_loss+= F.nll_loss(output, target).item()

            # get the index of the max

            #pred = output.data.max(1, keepdim=True)[1]

            pred= output.data.max(1)[1]

            correct+= pred.eq(target.data.view_as(pred)).cpu().sum()

    test_loss/= len(test_loader.dataset)

    print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format(

         test_loss, correct,len(test_loader.dataset),

         100. * correct/ len(test_loader.dataset)))

    for epochin range(1,6):

        train(epoch)

        test()

    ```

    测试结果:

    相关文章

      网友评论

        本文标题:windows下在pycharm中安装pytorch的一些问题

        本文链接:https://www.haomeiwen.com/subject/rqxayktx.html