注:使用方法与np.random.randn()函数相同
作用: 通过本函数可以返回一个或一组服从“0~1”均匀分布的随机样本值。随机样本取值范围是[0,1),不包括1。
应用:在深度学习的Dropout正则化方法中,可以用于生成dropout随机向量(dl)
例如(keep_prob表示保留神经元的比例):
dl = np.random.rand(al.shape[0],al.shape[1])
import torch import numpy as np a=np.random.rand(1) b=np.random.rand(2)2np.random.randn(d0,d1,d2……dn) 返回一个或一组服从标准正态分布的随机样本值
1)当函数括号内没有参数时,则返回一个浮点数;
2)当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵;
3)当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵;
4)np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal()
的输入参数为元组(tuple).
5)np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。
通过本函数可以返回一个或一组服从标准正态分布的随机样本值。
标准正态分布是以0为均数、以1为标准差的正态分布,记为N(0,1)
np.random.randn(3)
pytorch中只包含一个元素的变量称为标量
pytorch中用Array数组表示向量
import numpy as np a = np.array([1, 2, 3]) a t = torch.from_numpy(a) t t[0]=-1 a4.sklearn中的datasets数据集 datasets数据集 不需要从某个外部网站下载任何文件,用datasets.load_xx()加载。
波士顿房价数据集 统计了波士顿506处房屋的13种不同特征( 包含城镇犯罪率、一氧化氮浓度、住宅平均房间数、到中心区域的加权距离以及自住房平均房价等 )以及房屋的价格,适用于回归任务。
from sklearn import datasets # 导入库 boston = datasets.load_boston() # 导入波士顿房价数据 print(boston.keys()) # 查看键(属性) ['data','target','feature_names','DESCR', 'filename'] print(boston.data.shape,boston.target.shape) # 查看数据的形状 (506, 13) (506,) print(boston.feature_names) # 查看有哪些特征 这里共13种 #print(boston.DESCR) # described 描述这个数据集的信息 print(boston.filename) # 文件路径
鸢尾花数据集包含了150个鸢尾花样本,对应3种鸢尾花,各50个样本,以及它们各自对应的4种关于花外形的数据 ,适用于分类任务。
import torch from sklearn import datasets iris=datasets.load_iris() iris_data=iris["data"] iris_data.shape iris_tensor=torch.from_numpy(iris_data) iris_tensor.shape iris_tensor[:4,]#切片操作 前四行5.Python: PIL.Image 基本使用
导入 from PIL import Image
Image.open(fp, mode=‘r’):参数mode不是图片的mode,而是读写的方式,必须是‘r’。该函数只是打开图片,并不读入内存。读入内存时Image会调用Image.load()方法
展示图片
Image.show(title=None, command=None)
偏导数可以计算W和b对误差的贡献程度,所以我们可以使用误差loss对W和bd的偏导数来更新优化w和b
pytorch 可以支持有向无环图的构建和反向传播的链式法则引入一种特殊的数据结构tensor 计算拓扑沿着有向无环图进行计算得出output 后通过output计算损失值由链式法则可以将梯度传回叶子结点从而更新权重,图的节点用来计算梯度的函数函数保存在tensor的.grad_fn中当反向传播时会用tensor记录.grad_fn来计算相应梯度。
#对y=x+b求偏导数 x = torch.ones((2,5),requires_grad=True) b = 6 y = 6*x+b holder_weights = torch.ones((2,5))#初始化 y.backward(holder_weights)#对y进行反向传播 x.grad
#y=sin(x)求导 x = torch.ones((1,4),requires_grad=True) y = torch.sin(x) holder_weights = torch.ones((1,4)) y.backward(holder_weights) x.grad
#对指数函数y=e^x求导数 import math x = torch.Tensor([[1,3],[2,4]]) x.requires_grad=True y = torch.pow(math.e,x) holder_weights = torch.ones_like(x) y.backward(holder_weights) x.grad
#对数函数y=lnx求导数 import math x = torch.Tensor([[1,3],[2,4]]) x.requires_grad=True y = torch.log(x) holder_weights = torch.ones_like(x) y.backward(holder_weights) x.grad
#sigmod的导数 import math x = torch.Tensor([[1,3],[2,4]]) x.requires_grad=True y = 1/(1+math.e**-x) holder_weights = torch.ones_like(x) y.backward(holder_weights) x.grad7.pytorch的核心模块Tensor
torch.tensor 求导 grad/grad_fn
创建 torch.randn/torch.randint
参与运算 sum argmax
nn.parameters 获取网络参数
torch.nn function 提供了大量的模块 convrelu pooling softmax
结果输出值通过nn.xxxLoss损失函数计算损失(MSELossCrossCrossEntropyLoss)
损失传递给优化模块 torch.optim (SGD Adam)



