黄色:重点

粉色:不懂

  1. Torch 自称为神经网络界的 Numpy, 因为他能将 torch 产生的 tensor 放在 GPU 中加速运算 (前提是你有合适的 GPU), 就像 Numpy 会把 array 放在 CPU 中加速运算.

    import torch
    import numpy as np np_data = np.arange(6).reshape((2, 3))
    torch_data = torch.from_numpy(np_data)
    tensor2array = torch_data.numpy()
    print(
    '\nnumpy array:', np_data, # [[0 1 2], [3 4 5]]
    '\ntorch tensor:', torch_data, # 0 1 2 \n 3 4 5 [torch.LongTensor of size 2x3]
    '\ntensor to array:', tensor2array, # [[0 1 2], [3 4 5]]
    )

    Torch 中的数学运算

    其实 torch 中 tensor 的运算和 numpy array 的如出一辙, 我们就以对比的形式来看. 如果想了解 torch 中其它更多有用的运算符, API就是你要去的地方.

    # abs 绝对值计算
    data = [-1, -2, 1, 2]
    tensor = torch.FloatTensor(data) # 转换成32位浮点 tensor
    print(
    '\nabs',
    '\nnumpy: ', np.abs(data), # [1 2 1 2]
    '\ntorch: ', torch.abs(tensor) # [1 2 1 2]
    ) # sin 三角函数 sin
    print(
    '\nsin',
    '\nnumpy: ', np.sin(data), # [-0.84147098 -0.90929743 0.84147098 0.90929743]
    '\ntorch: ', torch.sin(tensor) # [-0.8415 -0.9093 0.8415 0.9093]
    ) # mean 均值
    print(
    '\nmean',
    '\nnumpy: ', np.mean(data), # 0.0
    '\ntorch: ', torch.mean(tensor) # 0.0
    )

    除了简单的计算, 矩阵运算才是神经网络中最重要的部分. 所以我们展示下矩阵的乘法. 注意一下包含了一个 numpy 中可行, 但是 torch 中不可行的方式.

    # matrix multiplication 矩阵点乘
    data = [[1,2], [3,4]]
    tensor = torch.FloatTensor(data) # 转换成32位浮点 tensor
    # correct method
    print(
    '\nmatrix multiplication (matmul)',
    '\nnumpy: ', np.matmul(data, data), # [[7, 10], [15, 22]]
    '\ntorch: ', torch.mm(tensor, tensor) # [[7, 10], [15, 22]]
    ) # !!!! 下面是错误的方法 !!!!
    data = np.array(data)
    print(
    '\nmatrix multiplication (dot)',
    '\nnumpy: ', data.dot(data), # [[7, 10], [15, 22]] 在numpy 中可行
    '\ntorch: ', tensor.dot(tensor) # torch 会转换成 [1,2,3,4].dot([1,2,3,4) = 30.0
    )

torch or numpy的更多相关文章

  1. Torch或Numpy

    1.什么是NumpyNumpy系统是Python的一种开源的数值计算扩展,用python实现的科学计算包.这种工具可用来存储和处理大型矩阵,包括强大的N维数组对象Array,比较成熟的函数库等.num ...

  2. 莫烦pytorch学习笔记(一)——torch or numpy

    Q1:什么是神经网络? Q2:torch vs numpy Numpy:NumPy系统是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(neste ...

  3. 关于类型为numpy,TensorFlow.tensor,torch.tensor的shape变化以及相互转化

    https://blog.csdn.net/zz2230633069/article/details/82669546 2018年09月12日 22:56:50 一只tobey 阅读数:727   1 ...

  4. torch.Tensor和numpy.ndarray

    1. torch.Tensor和numpy.ndarray相互转换 import torch import numpy as np # <class 'numpy.ndarray'> np ...

  5. 奉献pytorch 搭建 CNN 卷积神经网络训练图像识别的模型,配合numpy 和matplotlib 一起使用调用 cuda GPU进行加速训练

    1.Torch构建简单的模型 # coding:utf-8 import torch class Net(torch.nn.Module): def __init__(self,img_rgb=3,i ...

  6. pytorch之 compare with numpy

    import torch import numpy as np # details about math operation in torch can be found in: http://pyto ...

  7. torch文档学习笔记

    下面为官方文档学习笔记    http://pytorch.org/docs/0.3.0/index.html 1.torch.Tensor from __future__ import print_ ...

  8. torch基础学习

    目录 Pytorch Leture 05: Linear Rregression in the Pytorch Way Logistic Regression 逻辑回归 - 二分类 Lecture07 ...

  9. 使用torch实现RNN

    (本文对https://blog.csdn.net/out_of_memory_error/article/details/81456501的结果进行了复现.) 在实验室的项目遇到了困难,弄不明白LS ...

随机推荐

  1. Libevent:5events相关

    Libevents的基本操作单元是event,每一个event代表了一些条件的集合,这些条件包括: 文件描述符已经准备好读或写 文件描述符正在变为就绪,准备好读或写(仅限于边沿触发) 超时事件 信号发 ...

  2. 关于IOS 微信浏览器 点击输入框自动放大问题

    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=0& ...

  3. CNN如何识别一幅图像中的物体

    让我们对卷积神经网络如何工作形成更好直观感受.我们先看下人怎样识别图片,然后再看 CNNs 如何用一个近似的方法来识别图片. 比如说,我们想把下面这张图片识别为金毛巡回犬.   一个需要被识别为金毛巡 ...

  4. [***]HZOJ 哪一天她能重回我身边

    %%%神仙题. 居然是图论,我还一直以为是二分图或者啥数据结构. 直接说正解了,将数看作节点,牌看做边,从牌的正面的数想反面连边权为1的边,反面向正面连边权为0的边(注意用到成对存储的技巧,之后会非常 ...

  5. python selenium 获取对象输入的属性值

    .get_attribute("value") from selenium import webdriver import time driver=webdriver.Firefo ...

  6. python selenium 测试配置信息(URL和浏览器)

    config.ini # this is config file, only store browser type and server URL [browserType] #browserName ...

  7. Springboot应用中@EntityScan和@EnableJpaRepositories的用法

    在Springboot应用开发中使用JPA时,通常在主应用程序所在包或者其子包的某个位置定义我们的Entity和Repository,这样基于Springboot的自动配置,无需额外配置,我们定义的E ...

  8. H3C 链路层协议

  9. 同一个页面 andriod和ios设备上的按钮颜色不一致

    andriod系统显示蓝色的按钮,正常:ios设备显示灰色的按钮,不正常. style属性添加-webkit-appearance: none;

  10. 洛谷 P1972"[SDOI2009]HH的项链"(离线+树状数组 or 在线+主席树)

    传送门 •题意 给你一个包含 n 个数的数组 $a$: 有 m 此操作,每次操作求区间 [l,r] 中不同数的个数: •题解(离线+树状数组) 以样例 $[1,2,3,4,3,5]$ 为例,求解区间 ...