how to use pytorch

1.Tensor

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

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

we can also change the datatype of a tensor

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

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

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

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

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

numpy and tensor can transfer from each other

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

2.Variable

Variable consists of data, grad, and grad_fn

data为Tensor中的数值

grad是反向传播梯度

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

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

we can also calculate the grad of a matrix

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

3.dataset

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

import pandas as pd
from torch.utils.data import Dataset
class myDataset(Dataset):
def __init__(self, csv_file, txt_file, root_dir, other_file):
self.csv_data = pd.read_csv(csv_file)
with open(txt_file, 'r') as f:
data_list = f.readlines()
self.txt_data = data_list
self.root_dir = root_dir def __len__(self):
return len(self.csv_data) def __getitem(self,idx):
data = (self.csv_data[idx],self.txt_data[idx])
return data

4.nn.Module

from torch import nn
class net_name(nn.Module):
def __init(self,other_arguments):
super(net_name, self).__init__() def forward(self,x):
x = self.convl(x)
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. [NOI2009]诗人小G(dp + 决策单调性优化)

    题意 有一个长度为 \(n\) 的序列 \(A\) 和常数 \(L, P\) ,你需要将它分成若干段,每 \(P\) 一段的代价为 \(| \sum ( A_i ) − L|^P\) ,求最小代价的划 ...

  2. emwin 之 GUI_MessageBox 阻塞特性

    2019-03-01 [小记] GUI_MessageBox 函数执行后必须手动点击关闭窗口,未关闭窗口前线程将阻塞在此处等待关闭窗口事件 [使用场景] 由于该函数不会产生任何消息, 所以可利用阻塞特 ...

  3. Java基础 -- 访问控制权限

    一  包:库单元 假设我们存在两个类名相同的类,如果没有一定的措施对其进行区分,就会无法区别到底使用的是哪一个类.因此java引入了包来进行名字空间管理. 包(类库)包含有一组类,这些类在单一的名字空 ...

  4. 百度在职 iOS 架构师的成长笔记,送给还在迷茫的你!

    前言 我们经常在网上会看到这样的文章,你的同龄人正在如何如何.......这是典型的贩卖焦虑的文章.的确,现阶段,刚毕业几年的年轻人,面临车,房子等,有时候压力挺大的. 但你过度焦虑的话,每天生活在恐 ...

  5. Docker:私有仓库registry [十一]

    一.运行docker私有仓库 安装registry docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregi ...

  6. CSS布局-flex布局入门教程

    前言 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. 查询兼容 F ...

  7. [Android] Android RxJava2+Retrofit2+OkHttp3 的使用(一) --基础篇 Retrofit2 的使用

    本文是 Android RxJava2+Retrofit2+OkHttp3 的使用(一) --基础篇 Retrofit2 的使用 本文的目标是用 Retrofit写一个网络请求: 本文以从获取天气预报 ...

  8. [再寄小读者之数学篇](2014-10-27 Frobenius 范数是酉不变范数)

    对任两酉阵 $U,V$, 有 $$\bex \sen{A}_F=\sen{UAV}_F. \eex$$ 事实上, $$\beex \bea \sen{UAV}_F^2&=\tr(V^*A^*U ...

  9. 在桌面右键创建html,css,js文件

    1.在开始里面输入regedit,进入注册表编辑器. 2.打开HKEY_CLASSES_ROOT项. 3.打开.html/.css/.js项. 4.右键新建项,起名ShellNew. 5.新建字符串值 ...

  10. Leetcode#70. Climbing Stairs(爬楼梯)

    题目描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解 ...