-
torch教程
2021-01-10 16:19:29本文机遇Pytorch官方中文教程。 Tensor(张量) tensor类似于numpy中的adarray,是n维张量。 创建tensor #张量:不初始化(都是0) print("构造张量:不初始化") x = torch.empty((5,3)) print(x) #随机初始化 ...Pytorch是一个机遇Torch的python第三方库,是当前最流行的机器学习库之一。本文基于Pytorch官方中文教程。
Tensor(张量)
tensor类似于numpy中的adarray,是n维张量。
创建tensor
#张量:不初始化(都是0) print("构造张量:不初始化") x = torch.empty((5,3)) print(x) #随机初始化 print("构造张量:随机初始化") x = torch.rand((5,3)) print(x) #全0矩阵 print("构造张量:全0") x = torch.zeros((5,3), dtype=torch.long) print(x) #从列表构造张量 print("构造张量:从列表构造张量") x = torch.tensor([1, 2, 3]) print(x) #从已有张量构造张量:y会继承x的属性 print("构造张量:从已有张量构造张量") y = x.new_ones((5, 3), dtype=torch.long) print(y) y = torch.rand_like(x, dtype=torch.float) print(y)
基本属性
#获取维度信息 print("获取维度信息") x = torch.empty((5,3)) print(x.shape) #基本运算 print("基本运算") x = torch.rand((5,3)) y = torch.rand_like(x) print(x+y) print(x.add(y)) #带有_的函数会改变调用此函数的对象 x.add_(y) print(x) #改变形状 print("改变形状") x = torch.rand(4,4) y = x.view(-1, 8) print(x.size(), y.size()) #如果只有一个元素,获取元素 print("获取元素") x = torch.rand((1,1)) print(x) print(x.item())
自动微分
tensor最大的特点是可以自动微分
#%% #自动微分 import torch x = torch.ones(2, 2, requires_grad=True) y = x + 2 z = y * y * 3 out = z.mean() #out是标量,因此反向传播无需指定参数 out.backward() #打印梯度 print("打印梯度") print(x.grad) #雅克比向量积 print("雅克比向量积") x = torch.rand(3, requires_grad=True) y = x * 2 print(y) #反向传播的参数是权重 #I = w1*y1 + w2*y2 + w3 * y3 #这里是I对x的各个分量求导 w = torch.tensor([1,2,3], dtype=torch.float) y.backward(w) print(x.grad)
-
awesome-torch, 出色的Torch 教程项目和社区的精选列表.zip
2019-10-10 04:29:53awesome-torch, 出色的Torch 教程项目和社区的精选列表 的Torch出色的Torch 教程。项目和社区的精选列表。目录教程模型动物园。递归网络卷积网络等库模型与相关GPU与相关IDE相关。等链接教程使用 Torch CVPR15教程 ... -
macM1安装tensorflow和torch教程(python3.8环境)
2021-02-21 11:06:16macM1安装tensorflow和torch教程(python3.8环境) 为搭建机器学习环境,appleM1的环境搭建大概花了一周摸索,使用pip install 报错。 1.配置conda环境 首先,conda forge提供的miniforge支持M1芯片,下载miniforge3...macM1安装tensorflow和torch教程(python3.8环境)
为搭建机器学习环境,appleM1的环境搭建大概花了一周摸索,使用pip install 报错,发现是因为arm架构的问题。
1.配置conda环境
首先,conda forge提供的miniforge支持M1芯片,下载miniforge3,选择Apple Silicon版本 下载地址:miniforge下载地址
下载文件到本地,安装conda。为tensorflow搭建Python环境
miniforge3默认是python3.9,我们安装tensorflow需要3.8版本的python,所以我们需要先创建一个conda环境
conda create -—name python38 python=3.8 # 激活环境 conda activate python38
2.下载tensorflow文件
下载地址:tensorflow下载,下载完成后,使用tar进行解压
tar -xvf tensorflow_macos-0.1alpha1.tar
按步骤安装链接:https://www.ai-buzz.com/18-steps-to-install-tensorflow_macos-on-m1-macbook-2020/
测试
安装完成后,可以在命令行中使用python命令进入交互模式,测试tensorflow是否正确安装。import tensorflow
如果能正常引用,没有报错,即为安装成功。
3.安装pytorch
安装torch
截至2021-01-27,torch不能通过conda install torch或者pip install torch安装。但是我们有wheel。
下载wheel文件
下载链接:https://github.com/pytorch/pytorch/issues/48145
下载到本地
如果是Python3.8环境pip install torch-1.8.0a0-cp38-cp38-macosx_11_0_arm64.whl
如果是Python3.9环境
pip install torch-1.8.0a0-cp39-cp39-macosx_11_0_arm64.whl
测试
import torch
-
torch教程——数据并行处理
2021-01-13 08:45:57import torch import torch.nn as nn from torch.utils.data import Dataset, DataLoader input_size = 5 output_size = 2 batch_size = 30 data_size = 100 #设备 device = torch.device("cuda:0" if torcpytorch的优点之一是可以使用GPU加速,但是默认情况下,只会使用一个GPU。本文内容是如果使用多个GPU并行运算。
代码
import torch import torch.nn as nn from torch.utils.data import Dataset, DataLoader input_size = 5 output_size = 2 batch_size = 30 data_size = 100 #设备 device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") #数据集:size是单个向量的大小,length是向量的个数 class RandomDataset(Dataset): def __init__(self, size, length): self.len = length self.data = torch.randn(length, size) def __getitem__(self, index): return self.data[index] def __len__(self): return self.len #加载器:batch_size = 30,即单次循环中读入的数据是30 * 5 rand_loader = DataLoader(dataset=RandomDataset(size=input_size, length=data_size), batch_size = batch_size, shuffle=True) #神经网络:只有一个线性层,输入5,输出2 class Model(nn.Module): def __init__(self, input_size, output_size): super(Model, self).__init__() self.fc = nn.Linear(input_size, output_size) def forward(self, input): output = self.fc(input) print("\t In Model: input size", input.size(), "output Size", output.size()) return output #实例化model model = Model(input_size, output_size) #判断是否存在多个GPU if torch.cuda.device_count() > 1: print("Let's use", torch.cuda.device_count(), "GPUS") #将模型部署到多个GPU上 model = nn.DataParallel(model) #神经网络移植到GPU model.to(device) #开始训练 for data in rand_loader: #输入移植到GPU input = data.to(device) output = model(input) print("Outsida:input size", input.size(), "output_size", output.size())
这里并行加速的核心代码是
model = nn.DataParallel(model)
数据并行自动拆分了数据并且将任务发送到多个GPU上,当每个模型都完成自己的任务后,DataParallel收集并合并这些结果并返回。
输出
此处,我有两个可用的GPU。
每次for循环中读取30个长度是5的向量,由于有2个GPU,因此每个GPU分配15个,在模型内部,就是15*5的张量。说明
- 使用多个GPU并行处理速度不一定更快。笔者测试的数据集较小,神经网络也很简单,使用多个GPU训练用时可能不降反升。
-
Centos 7安装torch教程
2017-05-11 11:22:23参考官方指南:http://torch.ch/docs/getting-started.html#_ 安装非常简单,就是有点耗时: git clone ...~/torch --recursivecd ~/torch; bash install-deps; ./install.sh 添加环境变量: sou参考官方指南:http://torch.ch/docs/getting-started.html#_
安装非常简单,就是有点耗时:
git clone https://github.com/torch/distro.git
~/torch --recursivecd ~/torch;
bash install-deps;
./install.sh
添加环境变量:
source ~/.bashrc
测试:
退出:exit
如果想要删除torch:
rm -rf ~/torch
或安装软件:
luarocks install <name>
-
torch教程——迁移学习
2021-01-15 16:37:07from __future__ import print_function, division import torch import torch.nn as nn import torch.optim as optim from torch.optim import lr_scheduler import numpy as np import torchvision from ... -
torch教程——使用GPU运行神经网络
2021-01-10 23:20:22安装教程 demo 导入torch库以后,调用下面的函数,如果打印True就说明安装成功。 import torch print(torch.cuda.is_available()) 定义一个cuda设备 device = torch.device("cuda:0" if torch.cuda.is_available() ... -
lua&torch教程记录
2016-10-03 15:51:23想使用torch就要学习lua,随意搜了几个,感觉这个教程最好,写得很清晰。 http://www.runoob.com/lua/lua-tutorial.html -
torch教程——数据加载和处理
2021-01-14 10:06:12前面训练神经网络,我们使用了torch内置的dataset类作为数据类。这种方法用来做一些demo不错,但是实际应用中需要自定义数据类。 下载数据集 https://download.csdn.net/download/weixin_42708161/14156096 下载后... -
torch 教程_带有频闪灯教程的Android Torch App
2020-04-28 12:55:52torch 教程 在本文中,我们要描述如何在Android中创建简单的割炬应用程序。 这是一个很好的示例,因为我们可以探索一些有关Android Camera的Android API。 我们将使用Android Studio作为IDE来开发应用程序。 这个... -
Lua快速入门与Torch教程
2019-12-16 11:35:40这篇总结的真好: https://blog.csdn.net/c602273091/article/details/78940781 -
torch教程——训练第一个神经网络
2021-01-10 21:55:20深度学习的3个主要步骤如下: 定义一个函数集F。 定义一个评价函数:其输入是F中的某个函数f(实际上是决定了函数表达式的参数),输出是f的好坏。 从F中找到一个最好的函数。 神经网络其实就是一个...import torch