PyTorch无GPU加速版本windows笔记

简介: PyTorch无GPU加速版本windows笔记

一、PyTorch


1.1 安装无CUDA


地址:https://pytorch.org/


20201124191738858.png

pip install torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

20201124192536311.png


二、Numpy VS Torch


Torch自称为神经网络界的Numpy,因为他能将torch产生的tensor放在GPU中加速运算(前提是你有合适的GPU),就像Numpy会把array放在CPU中加速运算.所以神经网络的话,当然是用Torch的tensor形式数据最好咯.就像Tensorflow当中的tensor一样.

当然,我们对Numpy还是爱不释手的,因为我们太习惯numpy的形式了.不过torch看出来我们的喜爱,他把torch做的和numpy能很好的兼容.比如这样就能自由地转换numpy array和torch tensor了


2.1 数据格式对比

import torch
import numpy as np
# 1.构造二维数据 0 1 2  3 4 5
np_data = np.arange(6).reshape((2,3))
# 2.转换Numpy数据为Torch数据
torch_data = torch.from_numpy(np_data)
# 3.Torch数据转换成Numpy数据
tensor2array = torch_data.numpy()
# 4.打印数据格式
print(
    '\nnumpy',np_data,
    '\ntorch',torch_data,
    '\ntensor2array',tensor2array
)

1.运行报错!

20201124193638245.png

2.然后双击文件安装即可,其实出现这个问题,就是VC没有安装导致的。

20201124194005332.png


2.2 矩阵运算对比

import torch
import numpy as np
# 矩阵
data = [[1,2],[3,4]]
# 32bit floating point
tensor = torch.FloatTensor(data)
# 打印
print(
    '\nnumpy矩阵相乘',np.matmul(data,data),
    '\ntorch矩阵相乘',torch.mm(tensor,tensor)
)


20201124194753771.png


2.3 激活函数

import torch
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt
# 数据 200个点数据
x = torch.linspace(-5,5,200)
x = Variable(x)
# 画图需要numpy格式的数据
x_np = x.data.numpy()
# 激活值 函数
y_relu = torch.relu(x).data.numpy()
y_sigmoid = torch.sigmoid(x).data.numpy()
y_tanh = torch.tanh(x).data.numpy()
y_softplus = F.softplus(x).data.numpy()
# 作图
plt.figure(1,figsize=(8,6))
plt.subplot(221)
plt.plot(x_np,y_relu,c='red',label='relu')
plt.ylim((-1,5))
plt.legend(loc='best')
plt.subplot(222)
plt.plot(x_np,y_sigmoid,c='red',label='sigmoid')
plt.ylim((-0.2,1.2))
plt.legend(loc='best')
plt.subplot(223)
plt.plot(x_np,y_tanh,c='red',label='tanh')
plt.ylim((-1.2,1.2))
plt.legend(loc='best')
plt.subplot(224)
plt.plot(x_np,y_softplus,c='red',label='softplus')
plt.ylim((-0.2,6))
plt.legend(loc='best')
print(plt.show())

20201124202139260.png


三、神经网络回归

import torch
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt
# 数据维度为1,y为2次方+噪声
x = torch.unsqueeze(torch.linspace(-1,1,100),dim=1)
y = x.pow(2) + 0.2*torch.rand(x.size())
# 画图
x,y = Variable(x),Variable(y)
plt.scatter(x.data.numpy(),y.data.numpy())
plt.show()
# 搭建神经网络
class Net(torch.nn.Module):
    def __init__(self,n_feature,n_hidden,n_output):
        super(Net, self).__init__()
        self.hidden = torch.nn.Linear(n_feature,n_hidden)  #一个隐藏层
        self.predict = torch.nn.Linear(n_hidden,n_output)  #预测神经元层,预测一个Y
    def forward(self,x):
        x = torch.relu(self.hidden(x))
        x = self.predict(x)
        return x
net = Net(1,10,1)  # 神经网络的结构1-10-1
print(net)
# 实时打印的过程
plt.ion()
plt.show()
# 优化神经网络 学习效率,均方误差
optimizer = torch.optim.SGD(net.parameters(),lr=0.5)
loss_func = torch.nn.MSELoss()
for t in range(100):  # 训练100步
    prediction = net(x)
    loss = loss_func(prediction,y)  # 预测值与真实值 计算误差
    optimizer.zero_grad()  # 优化参数 梯度降为0
    loss.backward()  # 反向传递误差 计算梯度
    optimizer.step()  # 优化梯度 学习效率0.5
    if t % 5 == 0:  # 每学习5步就打印一次
        plt.cla()
        plt.scatter(x.data.numpy(),y.data.numpy())
        plt.plot(x.data.numpy(), prediction.data.numpy(), 'r-', lw=5)
        plt.text(0.5, 0, 'Loss=%.4f' % loss.data, fontdict={'size': 20,'coLor':'red'})
        plt.pause(0.1)
plt.ioff()
plt.show()


20201124211045536.png

20201124211030878.png

20201124211055319.png

20201124211104731.png

20201124211117395.png

相关实践学习
基于阿里云DeepGPU实例,用AI画唯美国风少女
本实验基于阿里云DeepGPU实例,使用aiacctorch加速stable-diffusion-webui,用AI画唯美国风少女,可提升性能至高至原性能的2.6倍。
目录
相关文章
|
1月前
|
人工智能 并行计算 PyTorch
【PyTorch&TensorBoard实战】GPU与CPU的计算速度对比(附代码)
【PyTorch&TensorBoard实战】GPU与CPU的计算速度对比(附代码)
39 0
|
1月前
|
网络协议 数据安全/隐私保护 Windows
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
46 1
|
1月前
|
存储 数据安全/隐私保护 索引
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
Windows Server 各版本搭建文件服务器实现共享文件(03~19)
166 1
|
2月前
|
机器学习/深度学习 存储 PyTorch
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
【AMP实操】解放你的GPU运行内存!在pytorch中使用自动混合精度训练
68 0
|
3月前
|
缓存 网络协议 数据安全/隐私保护
[运维笔记] - (命令).Windows server常用网络相关命令总结
[运维笔记] - (命令).Windows server常用网络相关命令总结
191 0
|
4月前
|
TensorFlow 算法框架/工具 异构计算
Windows部署TensorFlow后识别GPU失败,原因是啥?
Windows部署TensorFlow后识别GPU失败,原因是啥?
|
2月前
|
数据安全/隐私保护 网络虚拟化 开发者
appuploder 全过程使用教程(Windows 版本)
appuploder 全过程使用教程(Windows 版本)
|
11天前
|
机器学习/深度学习 并行计算 算法框架/工具
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
Anaconda+Cuda+Cudnn+Pytorch(GPU版)+Pycharm+Win11深度学习环境配置
|
23天前
|
Python Windows
【Python】Windows如何在cmd中切换python版本
【Python】Windows如何在cmd中切换python版本
|
1月前
|
数据安全/隐私保护 Windows
Windows Server 各版本搭建终端服务器实现远程访问(03~19)
左下角开始➡管理工具➡管理您的服务器,点击添加或删除角色点击下一步勾选自定义,点击下一步蒂埃涅吉终端服务器,点击下一步点击确定重新登录后点击确定点击开始➡管理工具➡计算机管理,展开本地用户和组,点击组可以发现有个组关门用来远程登录右键这个组点击属性,点击添加输入要添加的用户名,点击确定添加成功后点击确定打开另一台虚拟机(前提是在同一个局域网内),按 WIN + R 输入 mstsc 后回车输入 IP 地址后点击连接输入用户名及密码后点击确定连接成功!
38 0