当前位置: 首页 > news >正文

cms影视建站系统谷歌商店下载安装

cms影视建站系统,谷歌商店下载安装,网站开发多少人,假快递单制作软件app目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 构建数据集 2. 激活函数logistic 3. 线性层算子 Linear 4. 两层的前馈神经网络MLP 5. 模型训练 一、实验介绍 本实验实现了一个简单的两层前馈神经网络 激活函数…

目录

一、实验介绍

 二、实验环境

1. 配置虚拟环境

2. 库版本介绍

三、实验内容

0. 导入必要的工具包

1. 构建数据集

 2. 激活函数logistic

3. 线性层算子 Linear

4. 两层的前馈神经网络MLP

5. 模型训练


一、实验介绍

  • 本实验实现了一个简单的两层前馈神经网络
    • 激活函数logistic
    • 线性层算子Linear

 二、实验环境

    本系列实验使用了PyTorch深度学习框架,相关操作如下:

1. 配置虚拟环境

conda create -n DL python=3.7 
conda activate DL
pip install torch==1.8.1+cu102 torchvision==0.9.1+cu102 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
conda install matplotlib
 conda install scikit-learn

2. 库版本介绍

软件包本实验版本目前最新版
matplotlib3.5.33.8.0
numpy1.21.61.26.0
python3.7.16
scikit-learn0.22.11.3.0
torch1.8.1+cu1022.0.1
torchaudio0.8.12.0.2
torchvision0.9.1+cu1020.15.2

三、实验内容

ChatGPT:

        前馈神经网络(Feedforward Neural Network)是一种常见的人工神经网络模型,也被称为多层感知器(Multilayer Perceptron,MLP)。它是一种基于前向传播的模型,主要用于解决分类和回归问题。

        前馈神经网络由多个层组成,包括输入层、隐藏层和输出层。它的名称"前馈"源于信号在网络中只能向前流动,即从输入层经过隐藏层最终到达输出层,没有反馈连接。

以下是前馈神经网络的一般工作原理:

  1. 输入层:接收原始数据或特征向量作为网络的输入,每个输入被表示为网络的一个神经元。每个神经元将输入加权并通过激活函数进行转换,产生一个输出信号。

  2. 隐藏层:前馈神经网络可以包含一个或多个隐藏层,每个隐藏层由多个神经元组成。隐藏层的神经元接收来自上一层的输入,并将加权和经过激活函数转换后的信号传递给下一层。

  3. 输出层:最后一个隐藏层的输出被传递到输出层,输出层通常由一个或多个神经元组成。输出层的神经元根据要解决的问题类型(分类或回归)使用适当的激活函数(如Sigmoid、Softmax等)将最终结果输出。

  4. 前向传播:信号从输入层通过隐藏层传递到输出层的过程称为前向传播。在前向传播过程中,每个神经元将前一层的输出乘以相应的权重,并将结果传递给下一层。这样的计算通过网络中的每一层逐层进行,直到产生最终的输出。

  5. 损失函数和训练:前馈神经网络的训练过程通常涉及定义一个损失函数,用于衡量模型预测输出与真实标签之间的差异。常见的损失函数包括均方误差(Mean Squared Error)和交叉熵(Cross-Entropy)。通过使用反向传播算法(Backpropagation)和优化算法(如梯度下降),网络根据损失函数的梯度进行参数调整,以最小化损失函数的值。

        前馈神经网络的优点包括能够处理复杂的非线性关系,适用于各种问题类型,并且能够通过训练来自动学习特征表示。然而,它也存在一些挑战,如容易过拟合、对大规模数据和高维数据的处理较困难等。为了应对这些挑战,一些改进的网络结构和训练技术被提出,如卷积神经网络(Convolutional Neural Networks)和循环神经网络(Recurrent Neural Networks)等。

本系列为实验内容,对理论知识不进行详细阐释

(咳咳,其实是没时间整理,待有缘之时,回来填坑)

977468b5ae9843c6a88005e792817cb1.png

0. 导入必要的工具包

import torch
from torch import nn

1. 构建数据集

input = torch.ones((1, 10))

         创建了一个输入张量`input`,大小为(1, 10)。

 2. 激活函数logistic

def logistic(z):return 1.0 / (1.0 + torch.exp(-z))

        logistic函数的特点是将输入值映射到一个介于0和1之间的输出值,可以看作是一种概率估计。当输入值趋近于正无穷大时,输出值趋近于1;当输入值趋近于负无穷大时,输出值趋近于0。因此,logistic函数常用于二分类问题,将输出值解释为概率值,可以用于预测样本属于某一类的概率。在神经网络中,logistic函数的引入可以引入非线性特性,使得网络能够学习更加复杂的模式和表示。

3. 线性层算子 Linear

class Linear(nn.Module):def __init__(self, input_size, output_size):super(Linear, self).__init__()self.params = {}self.params['W'] = nn.Parameter(torch.randn(input_size, output_size, requires_grad=True))self.params['b'] = nn.Parameter(torch.randn(1, output_size, requires_grad=True))self.grads = {}self.inputs = Nonedef forward(self, inputs):self.inputs = inputsoutputs = torch.matmul(inputs, self.params['W']) + self.params['b']return outputs
  • Linear类是一个自定义的线性层,继承自nn.Module
    • 它具有两个参数:input_sizeoutput_size,分别表示输入和输出的大小。
  • 在初始化时,创建了两个参数:Wb,分别代表权重和偏置,都是可训练的张量,并通过nn.Parameter进行封装。
    • paramsgrads是字典类型的属性,用于存储参数和梯度;
    • inputs是一个临时变量,用于存储输入。
  • forward方法实现了前向传播的逻辑,利用输入和参数计算输出。

4. 两层的前馈神经网络MLP

class MLP(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(MLP, self).__init__()self.fc1 = Linear(input_size, hidden_size)self.fc2 = Linear(hidden_size, output_size)def forward(self, x):z1 = self.fc1(x)a1 = logistic(z1)z2 = self.fc2(a1)a2 = logistic(z2)return a2
  • 初始化时创建了两个线性层Linear对象:fc1fc2
  • forward方法实现了整个神经网络的前向传播过程:
    • 输入x首先经过第一层线性层fc1
    • 然后通过logistic函数进行激活,
    • 再经过第二层线性层fc2
    • 最后再经过一次logistic函数激活,
    • 并返回最终的输出。

5. 模型训练

input_size, hidden_size, output_size = 10, 5, 2
net = MLP(input_size, hidden_size, output_size)
output = net(input)
print(output)
  • 定义了三个变量input_sizehidden_sizeoutput_size,分别表示输入大小、隐藏层大小和输出大小。
  • 创建了一个MLP对象net,并将输入input传入模型进行前向计算,得到输出output。最后将输出打印出来。

6. 代码整合

# 导入必要的工具包
import torch
from torch import nn# 线性层算子,请一定注意继承自 nn. Module, 这会帮你解决许多细节上的问题
class Linear(nn.Module):def __init__(self, input_size, output_size):super(Linear, self).__init__()self.params = {}self.params['W'] = nn.Parameter(torch.randn(input_size, output_size, requires_grad=True))self.params['b'] = nn.Parameter(torch.randn(1, output_size, requires_grad=True))self.grads = {}self.inputs = Nonedef forward(self, inputs):self.inputs = inputsoutputs = torch.matmul(inputs, self.params['W']) + self.params['b']return outputs# 实现一个两层的前馈神经网络
class MLP(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(MLP, self).__init__()self.fc1 = Linear(input_size, hidden_size)self.fc2 = Linear(hidden_size, output_size)def forward(self, x):z1 = self.fc1(x)a1 = logistic(z1)z2 = self.fc2(a1)a2 = logistic(z2)return a2# Logistic 函数
def logistic(z):return 1.0 / (1.0 + torch.exp(-z))input = torch.ones((1, 10))
input_size, hidden_size, output_size = 10, 5, 2
net = MLP(input_size, hidden_size, output_size)
output = net(input)
print(output)

http://www.ds6.com.cn/news/73292.html

相关文章:

  • 企业网站托管哪家好刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 做电影字幕的网站seo博客网址
  • 淘宝详情页做的比较好的网站网上营销培训课程
  • wordpress集成支付宝当面付seo公司哪家好用
  • 福州网站维护网站怎么收录
  • 怎么做时时彩彩票网站体验营销案例
  • 监控摄像头做直播网站网站seo分析工具
  • 网站备案费用多少seo面试常见问题及答案
  • 大型餐饮网站建设北京seo优化诊断
  • 用html做网站的心得体会微博推广平台
  • 成都设计公司工作室seo网站推广方案策划书
  • dede电影网站模板下载郑州seo优化培训
  • 网上做预算的网站新乡网站优化公司价格
  • 中国网站建设公司百强网络营销管理办法
  • 玉溪市网站建设推广搜索大全浏览器
  • wordpress本地音乐网站seo 工具
  • 宁波建设工程主管部门网站国家重大新闻
  • 上海交通大学毕业设计网站百度搜索引擎优化案例
  • wordpress开源小程序seo综合查询站长工具
  • 货架网站开发seo顾问是什么
  • 品牌网线武汉seo关键词优化
  • 政府网站规范化建设方案网络运营师
  • 网站促销活动策划公众号免费推广平台
  • 汽车建设网站的能力百度账号管理中心
  • 网站制作公司都找乐云seo天津网络广告公司
  • 肇庆企业建站模板三个关键词介绍自己
  • 南通的电商网站建设营销
  • 怎么利用360域名做网站合肥网络公司seo建站
  • 郑州网站排名优化快速排名seo软件
  • 网站当前日期代码网店代运营靠谱吗