Pytorch的安装


前言

Pytorch是深度学习、机器学习中不可或缺的一个模块工具。相对于tensorflow而言,Pytorch对低版本语句的兼容性更好一些。因此我推荐出学者可以适当性的从pytorch着手学习相关内容。


如何在虚拟环境中安装Pytorch

1.确定你所需要的Pytorch版本:

1.1 系统的不同大致分为以下三类:

即WIndows版,MAC版,Linux版
如果你没有NVDIA系列的独立显卡,那么我个人建议使用CPU版本。

2.利用Anaconda 创建一个虚拟环境

2.1 打开终端(Windows和Mac一样)

2.1.1首先看看我们的虚拟环境都有哪些:
conda env list

环境变量里不可以有重复的命名

2.1.2 接着我们创建一个名称为thc的虚拟环境,并且配置3.8的python环境。(3.6也是可以的哦!)

代码如下:

conda create -n thc python=3.8
#加载好之后按y

在这里插入图片描述

激活虚拟环境

conda activate thc

在这里插入图片描述

2.1.3 在Pytorch官网里面选择相应的版本

https://pytorch.org/get-started/locally/
复制相应的代码:
在这里插入图片描述
如果想选择其他的版本可以从Previous Vision里面查找在这里插入图片描述
将相应的代码输入到打开的虚拟环境中并执行:
2021 M1芯片 Mac为例:

pip install torch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1

2.1.4 打开Pycharm,匹配最新的环境。

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

安装环境工作到此全部结束。
—————————————————————————————————
以下是代码测试部分:

import torch
import torchvision
import torch.utils.data as Data
import torch.nn as nn
import torch.nn.functional as F
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D

import time

starttime = time.time()

torch.manual_seed(1)
EPOCH = 10
BATCH_SIZE = 64
LR = 0.005
N_TEST_IMG = 5

train_data = torchvision.datasets.MNIST(
    root='MINIST',
    train=True,
    transform=torchvision.transforms.ToTensor(),
    download=True
)
loader = Data.DataLoader(dataset=train_data, batch_size=BATCH_SIZE, shuffle=True)


print(train_data.train_data.size())
print(train_data.train_labels.size())
print(train_data.train_data[0])
plt.imshow(train_data.train_data[2].numpy(),cmap='Greys')
plt.title('%i'%train_data.train_labels[2])
plt.show()


class AutoEncoder(nn.Module):
    def __init__(self):
        super(AutoEncoder, self).__init__()
        self.encoder = nn.Sequential(
            nn.Linear(28 * 28, 128),
            nn.Tanh(),
            nn.Linear(128, 64),
            nn.Tanh(),
            nn.Linear(64, 32),
            nn.Tanh(),
            nn.Linear(32, 16),
            nn.Tanh(),
            nn.Linear(16, 3)
        )
        self.decoder = nn.Sequential(
            nn.Linear(3, 16),
            nn.Tanh(),
            nn.Linear(16, 32),
            nn.Tanh(),
            nn.Linear(32, 64),
            nn.Tanh(),
            nn.Linear(64, 128),
            nn.Tanh(),
            nn.Linear(128, 28 * 28),
            nn.Sigmoid()

        )

    def forward(self, x):
        encoded = self.encoder(x)
        decoded = self.decoder(encoded)
        return encoded, decoded



Coder = AutoEncoder()
print(Coder)

optimizer = torch.optim.Adam(Coder.parameters(),lr=LR)
loss_func = nn.MSELoss()

for epoch in range(EPOCH):
    for step,(x,y) in enumerate(loader):
        b_x = x.view(-1,28*28)
        b_y = x.view(-1,28*28)
        b_label = y
        encoded , decoded = Coder(b_x)
        loss = loss_func(decoded,b_y)

        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        if step%5 == 0:
            print('Epoch :', epoch,'|','train_loss:%.4f'%loss.data)

torch.save(Coder,'AutoEncoder.pkl')
print('________________________________________')
print('finish training')

endtime = time.time()
print('训练耗时:',(endtime - starttime))


Coder = AutoEncoder()
Coder = torch.load('AutoEncoder.pkl')


#数据的空间形式的表示
view_data = train_data.train_data[:200].view(-1, 28*28).type(torch.FloatTensor)/255.
encoded_data, _ = Coder(view_data)    # 提取压缩的特征值
fig = plt.figure(2)
ax = Axes3D(fig)    # 3D 图
# x, y, z 的数据值
X = encoded_data.data[:, 0].numpy()
Y = encoded_data.data[:, 1].numpy()
Z = encoded_data.data[:, 2].numpy()
print(X[0],Y[0],Z[0])
values = train_data.train_labels[:200].numpy()  # 标签值
for x, y, z, s in zip(X, Y, Z, values):
    c = cm.rainbow(int(255*s/9))    # 上色
    ax.text(x, y, z, s, backgroundcolor=c)  # 标位子
ax.set_xlim(X.min(), X.max())
ax.set_ylim(Y.min(), Y.max())
ax.set_zlim(Z.min(), Z.max())
plt.show()


# 原数据和生成数据的比较
plt.ion()
plt.show()

for i in range(10):
    test_data = train_data.train_data[i].view(-1, 28 * 28).type(torch.FloatTensor) / 255.
    _, result = Coder(test_data)

    print('输入的数据的维度', train_data.train_data[i].size())
    print('输出的结果的维度',result.size())

    im_result = result.view(28, 28)
    print(im_result.size())
    plt.figure(1, figsize=(10, 3))
    plt.subplot(121)
    plt.title('test_data')
    plt.imshow(train_data.train_data[i].numpy(), cmap='Greys')

    plt.figure(1, figsize=(10, 4))
    plt.subplot(122)
    plt.title('result_data')
    plt.imshow(im_result.detach().numpy(), cmap='Greys')
    plt.show()
    plt.pause(0.5)

plt.ioff()

代码来源:https://zhuanlan.zhihu.com/p/116769890

总结

以上便是pytorch的所有安装内容以及环境测试的代码。希望与大家一起早日完成科研大业!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gooshanchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值