Ubuntu16.04 系统下的pytorch库(cpu版)安装与demo测试

PyTorch是一个快速,灵活的实验深度学习框架[1]。下面介绍Ubuntu16.04 系统及Anaconda环境下,对于pytorch库(cpu版)的安装与demo测试。系统环境:Ubuntu16.04 Anaconda2-5.2.0-Linux-x86_64 [2] pytorch 安装及环境配置1、源码下载git clone --recursive https://github.com

PyTorch是一个快速,灵活的实验深度学习框架[1]。下面介绍Ubuntu16.04 系统及Anaconda环境下,对于pytorch库(cpu版)的安装与demo测试。

系统环境:

pytorch 安装及环境配置

1、源码下载

git clone --recursive https://github.com/pytorch/pytorch 

2、安装

  • 打开,并进入刚下载的源码文件夹
cd ./pytorch

  • 执行安装文件 setup.py
python setup.py install

注意:执行该命令时,可能会提示权限问题,你可使用chmod命令[3]将该问题解决。例如我的pytorch源码文件夹路径是:~/Downloads/pytorch。通过执行以下命令即可解决权限问题:

chmod 777 ~/Downloads/pytorch

如需了解更多有关chmod命令,可以参考文档[1]。


  • pytorch包导入测试

在Python环境下输入命令:

import torch

如果在导入pytorch包没有提示错误,就说明安装成功了。

注意:本人使用该导入命令时,提示错误:“ImportError: No module named _C”。

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "torch/__init__.py", line 78, in <module>
    from torch._C import *
ImportError: No module named _C

解决办法:关闭该终端窗口,打开新的终端窗口输入导入pytorch包测试即可通过。


demo测试

# -*- coding: utf-8 -*-

import torch


dtype = torch.float
device = torch.device("cpu")
# dtype = torch.device("cuda:0") # Uncomment this to run on GPU

# N is batch size; D_in is input dimension;
# H is hidden dimension; D_out is output dimension.
N, D_in, H, D_out = 64, 1000, 100, 10

# Create random input and output data
x = torch.randn(N, D_in, device=device, dtype=dtype)
y = torch.randn(N, D_out, device=device, dtype=dtype)

# Randomly initialize weights
w1 = torch.randn(D_in, H, device=device, dtype=dtype)
w2 = torch.randn(H, D_out, device=device, dtype=dtype)

learning_rate = 1e-6
for t in range(500):
    # Forward pass: compute predicted y
    h = x.mm(w1)
    h_relu = h.clamp(min=0)
    y_pred = h_relu.mm(w2)

    # Compute and print loss
    loss = (y_pred - y).pow(2).sum().item()
    print(t, loss)

    # Backprop to compute gradients of w1 and w2 with respect to loss
    grad_y_pred = 2.0 * (y_pred - y)
    grad_w2 = h_relu.t().mm(grad_y_pred)
    grad_h_relu = grad_y_pred.mm(w2.t())
    grad_h = grad_h_relu.clone()
    grad_h[h < 0] = 0
    grad_w1 = x.t().mm(grad_h)

    # Update weights using gradient descent
    w1 -= learning_rate * grad_w1
    w2 -= learning_rate * grad_w2

输出结果如下:

(0, 33276068.0)
(1, 33026900.0)
(2, 35287920.0)
(3, 33936460.0)
(4, 26412418.0)
(5, 16149083.0)
......
......
......
(489, 4.269163400749676e-05)
(490, 4.2141629819525406e-05)
(491, 4.168449595454149e-05)
(492, 4.131443711230531e-05)
(493, 4.065494067617692e-05)
(494, 3.98996562580578e-05)
(495, 3.9512655348517e-05)
(496, 3.895666668540798e-05)
(497, 3.858671334455721e-05)
(498, 3.7854093534406275e-05)
(499, 3.753306737053208e-05)

参考链接

[1] PyTorch官网教程

https://pytorch.org/tutorials/index.html

[2]Anaconda镜像下载:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda2-5.2.0-Linux-x86_64.sh

[3]chmod命令

https://blog.csdn.net/u010636181/article/details/80678758

更多精彩项目及分享,请关注我的个人公众号:gbxiao992
这里写图片描述


作者:明柳梦少
原文链接:https://blog.csdn.net/u010636181/article/details/80678826

  • 发表于 2019-11-05 20:13
  • 阅读 ( 47 )
  • 分类:pytorch

0 条评论

请先 登录 后评论
不写代码的码农
明柳梦少_csdn

0 篇文章

作家榜 »

  1. AI君 10 文章
  2. Tzung-Wen Liau 0 文章
  3. blairan 0 文章
  4. rookie 0 文章
  5. 陈凯 0 文章
  6. huanxue 0 文章
  7. admin 0 文章
  8. Lzs1998_csdn 0 文章