1万网站建设费入什么科目,海南建设厅评审网站,网上商城 网站,外贸搜索推广目录
一、实验介绍 二、实验环境
1. 配置虚拟环境
2. 库版本介绍
三、实验内容
0. 导入库
1. 定义x,w,b
2. 计算净活性值z
3. 实例化线性层并进行前向传播
4. 打印结果
5. 代码整合 一、实验介绍 本实验使用了PyTorch库来构建和操作神经网络模型#xff0c;主要是关…目录
一、实验介绍 二、实验环境
1. 配置虚拟环境
2. 库版本介绍
三、实验内容
0. 导入库
1. 定义x,w,b
2. 计算净活性值z
3. 实例化线性层并进行前向传播
4. 打印结果
5. 代码整合 一、实验介绍 本实验使用了PyTorch库来构建和操作神经网络模型主要是关于线性层Linear Layer的使用。 二、实验环境 本系列实验使用了PyTorch深度学习框架相关操作如下
1. 配置虚拟环境
conda create -n DL python3.7
conda activate DL
pip install torch1.8.1cu102 torchvision0.9.1cu102 torchaudio0.8.1 -f https://download.pytorch.org/whl/torch_stable.htmlconda install matplotlib conda install scikit-learn
2. 库版本介绍
软件包本实验版本目前最新版matplotlib3.5.33.8.0numpy1.21.61.26.0python3.7.16scikit-learn0.22.11.3.0torch1.8.1cu1022.0.1torchaudio0.8.12.0.2torchvision0.9.1cu1020.15.2 三、实验内容
ChatGPT 前馈神经网络Feedforward Neural Network是一种常见的人工神经网络模型也被称为多层感知器Multilayer PerceptronMLP。它是一种基于前向传播的模型主要用于解决分类和回归问题。 前馈神经网络由多个层组成包括输入层、隐藏层和输出层。它的名称前馈源于信号在网络中只能向前流动即从输入层经过隐藏层最终到达输出层没有反馈连接。 以下是前馈神经网络的一般工作原理 输入层接收原始数据或特征向量作为网络的输入每个输入被表示为网络的一个神经元。每个神经元将输入加权并通过激活函数进行转换产生一个输出信号。 隐藏层前馈神经网络可以包含一个或多个隐藏层每个隐藏层由多个神经元组成。隐藏层的神经元接收来自上一层的输入并将加权和经过激活函数转换后的信号传递给下一层。 输出层最后一个隐藏层的输出被传递到输出层输出层通常由一个或多个神经元组成。输出层的神经元根据要解决的问题类型分类或回归使用适当的激活函数如Sigmoid、Softmax等将最终结果输出。 前向传播信号从输入层通过隐藏层传递到输出层的过程称为前向传播。在前向传播过程中每个神经元将前一层的输出乘以相应的权重并将结果传递给下一层。这样的计算通过网络中的每一层逐层进行直到产生最终的输出。 损失函数和训练前馈神经网络的训练过程通常涉及定义一个损失函数用于衡量模型预测输出与真实标签之间的差异。常见的损失函数包括均方误差Mean Squared Error和交叉熵Cross-Entropy。通过使用反向传播算法Backpropagation和优化算法如梯度下降网络根据损失函数的梯度进行参数调整以最小化损失函数的值。 前馈神经网络的优点包括能够处理复杂的非线性关系适用于各种问题类型并且能够通过训练来自动学习特征表示。然而它也存在一些挑战如容易过拟合、对大规模数据和高维数据的处理较困难等。为了应对这些挑战一些改进的网络结构和训练技术被提出如卷积神经网络Convolutional Neural Networks和循环神经网络Recurrent Neural Networks等。 本系列为实验内容对理论知识不进行详细阐释
咳咳其实是没时间整理待有缘之时回来填坑 0. 导入库
引入了PyTorch库中的相关模块和一些用于绘图和加载数据集的外部库。
import torch
from torch import nn
import torch.nn.functional as F
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris 加载鸢尾花数据集此处代码未给出具体加载数据集的步骤。 1. 定义x,w,b 定义神经网络模型的输入张量x、权重张量w和偏置项张量b
x torch.randn((2, 5))
w torch.randn((5, 1))
b torch.randn((1, 1))2. 计算净活性值z z torch.matmul(x, w) b
z_2 x w b 通过矩阵乘法计算净活性值z其中x表示输入特征w表示权重b表示偏置项。两种写法都是等效的可以使用torch.matmul()函数或运算符进行矩阵乘法操作。 3. 实例化线性层并进行前向传播
net nn.Linear(5, 1)
z_3 net(x) nn.Linear()函数实例化了一个线性层指定输入维度为5输出维度为1。然后将输入张量x传递给该线性层进行前向传播计算得到输出张量z_3。 4. 打印结果
print(output z:, z)
print(shape of z: , z.shape)
print(output z_2:, z_2)
print(shape of z:, z_2.shape)
print(output z2: , z_3)
print(shape of z2:, z_3.shape) 打印计算结果以及张量的形状信息方便查看和调试。 5. 代码整合 # 导入必要的工具包
import torch
from torch import nn# x 表示两个含有5个特征的样本x是一个二维的tensor
x torch.randn((2, 5))
# w 表示含有5个参数的权重向量w是一个二维的tensor
w torch.randn((5, 1))
# 偏置项b是一个二维的tensor但b只有一个数值
b torch.randn((1, 1))
# 矩阵乘法请注意 x 和 w 的顺序与 b 相加时使用了广播机制
z torch.matmul(x, w) b
# 另一种写法
z_2 x w b
# 打印结果z是一个二维的tensor表示两个样本经过神经元后的各自净活性值
print(output z:, z)
print(shape of z: , z.shape)
print(output z_2:, z_2)
print(shape of z:, z_2.shape)# 实例化一个线性层接受输入维度是5输出维度是1
net nn.Linear(5, 1)
z_3 net(x)
# 打印结果z2的形状与z一样含义也与z一样
print(output z2: , z_3)
print(shape of z2:, z_3.shape)