2021-06-29

山东大学暑期项目实训(一)

1.环境配置,使用anaconda搭建pytorch

anaconda的安装

  1. 官网:link
  2. 清华大学资源地址:link
  3. 下载完成后,按流程进行安装,中间可自行指定安装路径,进行到下图anaconda
    请务必勾选第一项添加环境变量,其后按流程操作即可。
    至此,anaconda安装完成,下面我们开始搭建环境

使用anaconda搭建pytorch环境

  1. 打开anaconda navigator在这里插入图片描述

  2. 选择environment下的create选项,这里我们直接搭建是行不通的,还是之前提到过的网络问题。我们需要把系统默认的源下载地址改成我们自己的镜像地址,用的还是清华大学的资源
    C:\Users\用户名 路径下有一个.condarc的记事本文件,我们将里面的内容修改为如下在这里插入图片描述

  3. 修改完文件之后,我们再次创建新环境在这里插入图片描述
    在这里插入图片描述

  4. 我们来到anaconda的安装目录下,有一个名为envs的文件夹,选择我们刚刚新建的环境pytorch,其中有一个scripts文件夹,复制其路径pytorch的位置

  5. 依旧右击此电脑—高级系统属性—环境变量
    在这里插入图片描述

  6. 打开anaconda prompt,然后输入“activate pytorch”,将当前环境切换到刚刚创建的新环境pytorch在这里插入图片描述
    在这里插入图片描述

  7. 我们进入官方提供的地址生成pytorch的下载命令,链接:link在这里插入图片描述

  8. 回车,执行命令下载文件在这里插入图片描述

2.进行python和pychram的安装配置

这里展示已经安装好的配置

在这里插入图片描述
在这里插入图片描述

进行测试,先创建项目

在这里插入图片描述

测试代码

import torch
import torchvision
import torchvision.transforms as transforms
import torch.utils.data.dataloader as dataloader
import torch.nn as nn
import torch.optim as optim
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "3"


train_set = torchvision.datasets.MNIST(
    root="./data",
    train=True,
    transform=transforms.ToTensor(),
    download=True
)
train_loader = dataloader.DataLoader(
    dataset=train_set,
    batch_size=100,
    shuffle=False,
)

test_set = torchvision.datasets.MNIST(
    root="./data",
    train=False,
    transform=transforms.ToTensor(),
    download=True
)
test_loader = dataloader.DataLoader(
    dataset=test_set,
    batch_size=100,
    shuffle=False,
)

class NeuralNet(nn.Module):

    def __init__(self, input_num, hidden_num, output_num):
        super(NeuralNet, self).__init__()
        self.fc1 = nn.Linear(input_num, hidden_num)
        self.fc2 = nn.Linear(hidden_num, output_num)
        self.relu = nn.ReLU()

    def forward(self,x):
        x = self.fc1(x)
        x = self.relu(x)
        y = self.fc2(x)
        return y


epoches = 20
lr = 0.001
input_num = 784
hidden_num = 500
output_num = 10
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

model = NeuralNet(input_num, hidden_num, output_num)
model.to(device)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=lr)


for epoch in range(epoches):
    for i, data in enumerate(train_loader):
        (images, labels) = data
        images = images.reshape(-1, 28*28).to(device)
        labels = labels.to(device)

        output = model(images)
        loss = criterion(output, labels)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        if (i+1) % 100 == 0:
            print('Epoch [{}/{}], Loss: {:.4f}'
                  .format(epoch + 1, epoches, loss.item()))


with torch.no_grad():
    correct = 0
    total = 0
    for images, labels in test_loader:
        images = images.reshape(-1, 28*28).to(device)
        labels = labels.to(device)
        output = model(images)
        _, predicted = torch.max(output, 1)
        total += labels.size(0)
        correct += (predicted == labels).sum().item()

    print("The accuracy of total {} images: {}%".format(total, 100 * correct/total))

测试结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值