Torch深度学习教程(二)

  • Torch里非常重要的结构Tensor(张量),类似于Python用的Numpy

    声明Tensor的格式如12行,打印a可以得到一个5x3的矩阵,这里的没有赋初值,但是Torch也会随即赋值的,具体的就跟c++里面的生命了变量虽没有初始化,但是还是会有值一样。

    接着我们调用rand随即初始化矩阵的值(注意这里跟我上面说的随即初始化的区别)。

    也可以直接调用随即初始化Tensor的值,如16行的代码,与a的随即初始化5x3矩阵是一样的,这里b是3x4矩阵。

    矩阵的乘实现的第一种方法

    矩阵的乘实现的第二种方法

    矩阵的乘实现的第三种方法,这种方法是先声明一个5x3乘以3x4矩阵生的5x4举证的Tensor变量c后,用变量c调用mm()方法进行乘运算,最后将结果保存到了c中,当然也可以用如下方式保存

    这种方式保存的不需要声明d为5x4的矩阵,直接使用即可,跟matlab特别像。

price = torch.Tensor{28993, 29110, 29436, 30791, 33384, 36762, 39900, 39972, 40230, 40146}

这是自己定义Tensor的值输入10个整型值,打印price,注意这时它只是一个有10数据的Tensor。

对比这两张图片,第一张是有10个数据的Tensor,第二张是10x1的矩阵,也可以成为列向量(神经网络经常用到),是调用了reshape()方法转换的,它们看着一样本质上是不一样的!

这时再次调用reshape()方法生产的2x5矩阵,值得注意的是,现在虽然调用了两次reshape(),但是原来的price还是10个数据的Tensor,如下图22行,在经过2次reshape()运算后price没有变化。

可以使用赋值语句将10x1的向量保存到price_vec中,当然也可以一直用price:reshape(10,1)来表示10x1向量,就是代码长一些。

如果想输出1到10这样的类似于枚举型数据时,可以调用range()方法,再次提醒这样初始化的还是一个Tensor,而非运算时候的矩阵或者向量,要用reshape转换。

时间: 2024-10-31 15:15:18

Torch深度学习教程(二)的相关文章

Torch深度学习教程(一)

本博文目标是介绍Torch的入门使用 博主采用iTorch界面编写,以下以图片方式展示代码. 如果记不清哪个方法的名字了可以在iTorch里面点"Tab"键会有智能输入,类似matlab 简单地介绍String,numbers,tables 字符串的操作注意是单引号,然后第二行中的print()函数有点像c++里面的cout,即可以根据输入的要打印的类型不同而显示,这输入式字符串,后面还会输入其他数据格式的输入.由于torch是交互式的,跟matlab很像所以直接打a也能显示输出. b

Deep Learning 十_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)

前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 实验内容:Exercise:Convolution and Pooling.从2000张64*64的RGB图片(它是the STL10 Dataset的一个子集)中提取特征作为训练数据集,训练softmax分类器,然后从3200张64*64的RGB图片(它是th

Deep Learning 12_深度学习UFLDL教程:Sparse Coding_exercise(斯坦福大学深度学习教程)

前言 理论知识:UFLDL教程.Deep learning:二十六(Sparse coding简单理解).Deep learning:二十七(Sparse coding中关于矩阵的范数求导).Deep learning:二十九(Sparse coding练习) 实验环境:win7, matlab2015b,16G内存,2T机械硬盘 本节实验比较不好理解也不好做,我看很多人最后也没得出好的结果,所以得花时间仔细理解才行. 实验内容:Exercise:Sparse Coding.从10张512*51

Deep Learning五:PCA and Whitening_Exercise(斯坦福大学UFLDL深度学习教程)

前言 本文是基于Exercise:PCA and Whitening的练习. 理论知识见:UFLDL教程. 实验内容:从10张512*512自然图像中随机选取10000个12*12的图像块(patch),然后对这些patch进行99%的方差保留的PCA计算,最后对这些patch做PCA Whitening和ZCA Whitening,并进行比较. 实验步骤及结果 1.加载图像数据,得到10000个图像块为原始数据x,它是144*10000的矩阵,随机显示200个图像块,其结果如下: 2.把它的每

Deep Learning九之深度学习UFLDL教程:linear decoder_exercise(斯坦福大学深度学习教程)

前言 实验内容:Exercise:Learning color features with Sparse Autoencoders.即:利用线性解码器,从100000张8*8的RGB图像块中提取彩色特征,这些特征会被用于下一节的练习 理论知识:线性解码器和http://www.cnblogs.com/tornadomeet/archive/2013/04/08/3007435.html 实验基础说明: 1.为什么要用线性解码器,而不用前面用过的栈式自编码器等?即:线性解码器的作用? 这一点,Ng

Deep Learning 十一_深度学习UFLDL教程:数据预处理(斯坦福大学深度学习教程)

理论知识:UFLDL数据预处理和http://www.cnblogs.com/tornadomeet/archive/2013/04/20/3033149.html 数据预处理是深度学习中非常重要的一步!如果说原始数据的获得,是深度学习中最重要的一步,那么获得原始数据之后对它的预处理更是重要的一部分. 1.数据预处理的方法: ①数据归一化: 简单缩放:对数据的每一个维度的值进行重新调节,使其在 [0,1]或[ − 1,1] 的区间内 逐样本均值消减:在每个样本上减去数据的统计平均值,用于平稳的数

使用亚马逊的云服务器EC2做深度学习(二)配置Jupyter Notebook服务器

这是<使用亚马逊的云服务器EC2做深度学习>系列的第二篇文章. (一)申请竞价实例  (二)配置Jupyter Notebook服务器  (三)配置TensorFlow Jupyter Notebook是Python中的一个开源编辑器.它的主界面就是一个网页,可以在浏览器中远程执行程序. 同时它可以方便地混杂代码和程序的说明,有许多TensorFlow的教程就是用Jupyter Notebook来编写的. 出于安全的考虑,Jupyter Notebook默认只能在本地访问,如果要远程访问需要进

用CNTK搞深度学习 (二) 训练基于RNN的自然语言模型 ( language model )

前一篇文章  用 CNTK 搞深度学习 (一) 入门    介绍了用CNTK构建简单前向神经网络的例子.现在假设读者已经懂得了使用CNTK的基本方法.现在我们做一个稍微复杂一点,也是自然语言挖掘中很火的一个模型: 用递归神经网络构建一个语言模型. 递归神经网络 (RNN),用图形化的表示则是隐层连接到自己的神经网络(当然只是RNN中的一种): 不同于普通的神经网络,RNN假设样例之间并不是独立的.例如要预测“上”这个字的下一个字是什么,那么在“上”之前出现过的字就很重要,如果之前出现过“工作”,

UFLDL深度学习教程翻译之自我学习

一.概述 假设我们有足够强大的学习算法,得到较好结果的其中一种最靠谱的方法是给算法提供更多的数据.这验证了在机器学习的那句格言:"有时候获胜的不是谁有最好的算法,而是谁有最多的数据." 也许有人总能得到有标记的数据,但这么做成本很高.特别地,研究人员已经采用极致的工具例如AMT(亚马逊土耳其机器人)来得到大量训练集.尽管拥有大量的人们人工标记的数据相比拥有大量的研究人员的工程性质的特征已经迈进了一步,但还能做的更好.特别地,自我学习以及无监督特征学习的方法是说,如果我们让我们的算法从无