how to use pytorch

1.Tensor

we can create a tensor just like creating a matrix the default type of a tensor is float

  1. import torch as t
  2. a = t.Tensor([[1,2],[3,4],[5,6]])
  3. a
  1. tensor([[1., 2.],
  2. [3., 4.],
  3. [5., 6.]])

we can also change the datatype of a tensor

  1. b = t.LongTensor([[1,2],[3,4],[5,6]])
  2. b
  1. tensor([[1, 2],
  2. [3, 4],
  3. [5, 6]])

we can also create a tensor filled with zero or random values

  1. c = t.zeros((3,2))
  2. d = t.randn((3,2))
  3. print(c)
  4. print(d)
  1. tensor([[0., 0.],
  2. [0., 0.],
  3. [0., 0.]])
  4. tensor([[ 1.2880, -0.1640],
  5. [-0.2654, 0.7187],
  6. [-0.3156, 0.4489]])

we can change the value in a tensor we've created

  1. a[0,1] = 100
  2. a
  1. tensor([[ 1., 100.],
  2. [ 3., 4.],
  3. [ 5., 6.]])

numpy and tensor can transfer from each other

  1. import numpy as np
  2. e = np.array([[1,2],[3,4],[5,6]])
  3. torch_e = t.from_numpy(e)
  4. torch_e
  1. tensor([[1, 2],
  2. [3, 4],
  3. [5, 6]])

2.Variable

Variable consists of data, grad, and grad_fn

data为Tensor中的数值

grad是反向传播梯度

grad_fn是得到该Variable的操作 例如加减乘除

  1. from torch.autograd import Variable
  2. x = Variable(t.Tensor([1]),requires_grad = True)
  3. w = Variable(t.Tensor([2]),requires_grad = True)
  4. b = Variable(t.Tensor([3]),requires_grad = True)
  5. y = w*x+b
  6. y.backward()
  7. print(x.grad)
  8. print(w.grad)
  9. print(b.grad)
  1. tensor([2.])
  2. tensor([1.])
  3. tensor([1.])

we can also calculate the grad of a matrix

  1. x = t.randn(3)
  2. x = Variable(x,requires_grad=True)
  3. y = x*2
  4. print(y)
  5. y.backward(t.FloatTensor([1,1,1]))
  6. print(x.grad)
  1. tensor([-2.4801, 0.6291, -0.4250], grad_fn=<MulBackward>)
  2. tensor([2., 2., 2.])

3.dataset

you can define the function len and getitem to write your own dataset

  1. import pandas as pd
  2. from torch.utils.data import Dataset
  3. class myDataset(Dataset):
  4. def __init__(self, csv_file, txt_file, root_dir, other_file):
  5. self.csv_data = pd.read_csv(csv_file)
  6. with open(txt_file, 'r') as f:
  7. data_list = f.readlines()
  8. self.txt_data = data_list
  9. self.root_dir = root_dir
  10. def __len__(self):
  11. return len(self.csv_data)
  12. def __getitem(self,idx):
  13. data = (self.csv_data[idx],self.txt_data[idx])
  14. return data

4.nn.Module

  1. from torch import nn
  2. class net_name(nn.Module):
  3. def __init(self,other_arguments):
  4. super(net_name, self).__init__()
  5. def forward(self,x):
  6. x = self.convl(x)
  7. return x

5.Optim

1.一阶优化算法

常见的是梯度下降法\(\theta = \theta-\eta\times \frac{\partial J(\theta)}{\partial\theta}\)

2.二阶优化算法

Hessian法

Pytorch学习(一)基础语法篇的更多相关文章

  1. Python学习笔记——基础语法篇

    一.Python初识(IDE环境及基本语法,Spyder快捷方式) Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,没有编译过程,可移植,可嵌入,可扩展. IDE 1.检查Pyth ...

  2. Xamarin XAML语言教程基础语法篇大学霸

    Xamarin XAML语言教程基础语法篇大学霸 前  言 Xamarin是一个跨平台开发框架.它可以用来开发iOS.Android.Windows Phone和Mac的应用程序.使用Xamarin框 ...

  3. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

  4. Scala快速入门 - 基础语法篇

    本篇文章首发于头条号Scala快速入门 - 基础语法篇,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干货,也欢迎关注我的 ...

  5. 真香,理解记忆法学习Python基础语法

    这篇文章很难写!我最开始学 Python,和大多数人一样,是看的菜鸟教程: 在写完这篇文章的第一遍后,我发现并没有写出新意,很可能读者看到后,会和我当初一样,很快就忘了.我现在已经不是读者而是作者了, ...

  6. JavaScript学习笔记-基础语法、类型、变量

    基础语法.类型.变量   非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...

  7. less学习:基础语法总结

    一. less是什么 Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 注意1):less使用. ...

  8. Python学习①. 基础语法

    Python 简介 Python 是一种解释型,面向对象的语言.特点是语法简单,可跨平台 Python 基础语法 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编 ...

  9. 【Java基础总结】Java基础语法篇(上)

    Java基础语法 思维导图 一.Java语言介绍 1.Java应用平台 JavaSE(Java Platform Standard Edition):开发普通桌面和商务应用程序,是另外两类的基础 Ja ...

随机推荐

  1. shell之数学运算

    let #!/bin/bash no1=1; no2=5; let result=no1+no2 ##不能留空格 echo $result #自加 let no++ #自减 let no-- #简写 ...

  2. Java8学习笔记(一)--Lambda表达式

    两个概念 函数式接口 函数式接口就是只显式声明一个抽象方法的接口.为保证方法数量不多不少,java8提供了一个专用注解@FunctionalInterface,这样,当接口中声明的抽象方法多于或少于一 ...

  3. zabbix存储history_text

    有一个监控项存储一个目录的所有文件(递归)信息,字符数量比较大,history_str表的value的字段字符数限制为255长度,所以就想存储到history_text表中,在最新数据中一直显示不出新 ...

  4. busybox(二)编译

    title: busybox(二)编译 tag: arm date: 2018-11-13 23:14:58 --- busybox(二)编译 解压,源码包在busybox-1.7.0.tar.bz2 ...

  5. swiper常见问题

    swiper是一个比较不错的一个轮播插件,但是呢,有时候在使用的时候也会出现很多的问题,我将我遇到的一些问题解决办法写在下面. 第一个问题:swiper分页器不显示 一般swiper使用分页器都是这样 ...

  6. qsort()函数详解

    一 写在开头1.1 本节内容学习C语言中的qsort()函数. 二 qsort()2.1 函数原型 void qsort( void *base, size_t nmemb, size_t size, ...

  7. 第十一节: EF的三种模式(一) 之 DBFirst模式(SQLServer和MySQL两套方案)

    一. 简介 EF连接数据库有三种模式,分别是DBFirst.ModelFirst.CodeFirst,分别适用于不同的开发场景. 该章节,将主要介绍EF的DBFirst连接SQLServer数据库和M ...

  8. 利用git提交代码

    一.首先需要下载git 查看电脑是否安装git,打开终端,输入git,回车如果输出如下,则代表已安装了git 如果未安装,则会输出: 按照提示输入:sudo apt-get install git即可 ...

  9. [再寄小读者之数学篇](2014-06-23 Hardy 空间、BMO空间与 Triebel-Lizorkin 空间)

    $$\bex 0<p<\infty\ra H_p=\dot F^0_{p,2};\quad BMO=\dot F^0_{\infty,2}. \eex$$ see [H. Triebel, ...

  10. [物理学与PDEs]第2章第1节 理想流体力学方程组 1.4 一维理想流体力学方程组

    1.  一维理想流体力学方程组 $$\beex \bea \cfrac{\p\rho}{\p t}+\cfrac{\p}{\p x}(\rho u)&=0,\\ \cfrac{\p}{\p t ...