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

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
缓存 并行计算 PyTorch
PyTorch CUDA内存管理优化:深度理解GPU资源分配与缓存机制
本文深入探讨了PyTorch中GPU内存管理的核心机制,特别是CUDA缓存分配器的作用与优化策略。文章分析了常见的“CUDA out of memory”问题及其成因,并通过实际案例(如Llama 1B模型训练)展示了内存分配模式。PyTorch的缓存分配器通过内存池化、延迟释放和碎片化优化等技术,显著提升了内存使用效率,减少了系统调用开销。此外,文章还介绍了高级优化方法,包括混合精度训练、梯度检查点技术及自定义内存分配器配置。这些策略有助于开发者在有限硬件资源下实现更高性能的深度学习模型训练与推理。
2559 0
|
10月前
|
开发框架 安全 .NET
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
.NET Framework是Windows平台的开发框架,包含CLR和FCL,支持多种语言开发桌面、Web应用。常用版本有3.5、4.5.2、4.8.1,系统可同时安装多个版本,确保软件兼容运行。
2262 0
Microsoft .NET Framework 3.5、4.5.2、4.8.1,适用于 Windows 版本的 .NET,Microsoft C Runtime等下载
|
运维 Linux 虚拟化
VMware虚拟机安装教程,Windows下安装VMware虚拟机,附VMware下载,Windows各版本系统镜像下载
虚拟机技术允许一台物理机运行多个操作系统,提升资源利用率,节省成本。通过快照、克隆等功能,实现系统快速恢复与复制,提高运维效率。本文详细介绍VMware虚拟机的安装步骤、Windows镜像下载及系统安装激活流程,适合初学者快速入门。
13227 0
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
363 2
|
消息中间件 NoSQL Linux
Redis的基本介绍和安装方式(包括Linux和Windows版本),以及常用命令的演示
Redis(Remote Dictionary Server)是一个高性能的开源键值存储数据库。它支持字符串、列表、散列、集合等多种数据类型,具有持久化、发布/订阅等高级功能。由于其出色的性能和广泛的使用场景,Redis在应用程序中常作为高速缓存、消息队列等用途。
1144 16
|
Windows
windows版本 软件管理
本内容讨论了将程序生成为exe文件并放置在D盘的过程,强调这一操作不会自动完成,需要用户进行手动设置或使用特定工具来实现。这对于编程初学者了解程序编译与部署的限制很有帮助,明确了自动化的边界条件。
282 1
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
4668 0
|
Web App开发 人工智能 JSON
Windows版来啦!Qwen3+MCPs,用AI自动发布小红书图文/视频笔记!
上一篇用 Qwen3+MCPs实现AI自动发小红书的最佳实践 有超多小伙伴关注,同时也排队在蹲Windows版本的教程。
2472 1
|
Windows
Windows下版本控制器(SVN)- 配置版本库
Windows下版本控制器(SVN)- 配置版本库
216 0

推荐镜像

更多