旅游电子商务网站的建设方式,推广app的营销方案,app使用什么做的网站,做seo要先做网站么PyTorch是一个#xff1a;机器学习框架#xff0c;简单易学可以看做是支持GPU计算和自动微分计算的“Numpy”库支持100多种Tensor常规算子#xff0c;包括#xff1a;创建、索引、切片、转置、连接、随机数、形状改变#xff0c;线性代数、数学计算Tensor是一个有值有属性… PyTorch是一个机器学习框架简单易学可以看做是支持GPU计算和自动微分计算的“Numpy”库支持100多种Tensor常规算子包括创建、索引、切片、转置、连接、随机数、形状改变线性代数、数学计算Tensor是一个有值有属性的多维数组对象跟NumPy ndarray对象比还支持自动微分(.requires_grad)和选择计算硬件(.device)Tensor是多维数组PyTorch中的所有CPU上的Tensor除了CharTensor以外都支持跟 NumPy ndarray类型相互转换从神经网络角度来看PyTorch是一个自动微分(autograd)工具包使用PyTorch构架神经网络用户只需要定义forward()方法而backward()无需用户定义PyTorch框架已经实现了这就是所谓的自动微分。可训练的参数包含在net.parameters()里面下面的Python源代码是用Numpy来实现一个简单的神经网络并完成前向计算和反向传播。可以看出用Numpy来编写神经网络的不方便性没有自动微分功能需要手动编写微分计算程序没有支持常用的神经网络层的算子需要动手编写需要手动实现额外的计算图和微分参数numpy.ndarray类型没有把微分和计算图的参数封装起来没有支持GPUtorch.tensor numpy.ndarray 计算图参数 微分参数 GPU支持若希望某个Tensor支持自动微分则需要将其属性requires_grad设置为True.当神经网络层数多的时候手动编写微分程序和反向传播程序是非常令人抓狂的一件事情import numpy as np# N:batch size; D_in输入层神经个数# H:隐藏层神经元个数; D_out输出层神经元个数N, D_in, H, D_out 64, 1000, 100, 10# 创建随机的输入输出数据x np.random.randn(N, D_in)y np.random.randn(N, D_out)# 用随机数初始化权重w1 np.random.randn(D_in, H)w2 np.random.randn(H, D_out)learning_rate 1e-6for t in range(500): # 前向传播计算预测值y_pred h x.dot(w1) h_relu np.maximum(h, 0) y_pred h_relu.dot(w2) # 计算Loss值 loss np.square(y - y_pred).sum() print(t, loss) # 反向传播计算w1和w2 对 loss函数的梯度 grad_y_pred 2.0 * (y_pred - y) grad_w2 h_relu.T.dot(grad_y_pred) grad_h_relu grad_y_pred.dot(w2.T) grad_h grad_h_relu.copy() grad_h[h 0] 0 grad_w1 x.T.dot(grad_h) # 更新权重 w1 - learning_rate * grad_w1 w2 - learning_rate * grad_w2