pytorch基础学习
包下载:pip install notebook -i https://pypi.doubanio.com/simple
豆瓣源安装包
一、tensor的数据类型
随机生成不同维度的tensor
import torch
x=torch.rand(2,3)#随机生成2行3列0到1的均匀分布
x.torch.randn(3,4)#生成正态分布
生成特定数值矩阵
x.torch.zero(2,4)#生成全零的矩阵zero可以换成ones等等
查看tensor数据大小
x.size()#括号中可以填某个维度
tensor数据类型
tensor.float32
tensor.float64
tensor.int32
tensor.int64
tensor与numpy(ndarray)的类型转换
numpy转tensor
torch.from_numpy(numpy矩阵变量名)
tensor转numpy
tensor矩阵变量名.numpy()
自定义tensor数据和数据类型
x=torch.tensor([6,2],dtype=torch.float32)
数据类型转换
x.type(torch.int64)
tensor运算
x1.add_(x2)#更改x1的值为x1+x2
x1.add(x2)#返回x1+x2的值
x1.view(-1,n)#-1代表自动运算出行数,n为指定列数
x1.mean()#求均值
x1.sum()#求和
x1.item()#返回tensor的标量值(单个数值)
单列数据值的个数统计
data.left.value_counts()
某列中相同的值仅被返回一次
依据不同的列进行分组
data.groupby([‘salary’,‘part’]).size()
二、网页版jupyter编辑界面
1、首先进入安装pytorch文件目录
E:cd pytorch
2、键入打开网页命令
jupyter notebook
三、张量自动微分计算
torch.tensor属性中有(data和grad和grad_fn)其中grad_fn是通过计算得到的属性。
将.requires_grad设置成true,pytorch将会开始跟踪此张量的所有操作。完成计算之后调用.backward()并自动计算所有梯度,累加到张量的.grad属性中
x=torch.ones(2,2,requires_grad=True)
x.grad #NULL
x.grad_fn #NULL
x.data #数据值
y=x+2
z=y*y+3
out=z.mean()#求均值
out.backward()#计算梯度,自动微分
x.grad# #打印梯度
当不需要跟踪梯度的时候可以将代码段放在
···
with torch.no_grad():
print((x**2).requires_grad)
···
也可以是这样
y=x.detach()
在tensor变量创建的时候就可以直接对requires_grad属性值进行修改
x.require_grad_(True)#下滑线是直接更改的意思,tensor的数据类型必须是torch.float32
四、线性回归模型的建立
统计学中,线性回归(英语:linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归(multivariable linear regression)
import torch
import pandas as pd #数据分析库
import numpy as np
import matplotlib.pyplot as plt #绘图库
data=pd.read_csv('dataset/Incomel.csv') #读取文件
data.info() #返回文件详细信息
data #直接打印数据集
plt.scatter(data.Education,data.Income) #绘制散点图
plt.xlabel('Education')
plt.ylabel('Income')
plt.show()
from torch import nn
device=torch.device("cuda:0" if torch.cuda.is_available(