实现第一个神经网络

PyTorch 包含创建和实现神经网络的特殊功能。在本节实验中,将创建一个简单的神经网络,其中一个隐藏层开发一个输出单元。

通过以下步骤使用 PyTorch 实现第一个神经网络。

第1步

首先,需要使用以下命令导入 PyTorch 库。

In [1]:

import torch

import torch.nn as nn

第2步

定义所有层和批量大小以开始执行神经网络,如下所示。

In [2]:

# Defining input size, hidden layer size, output size and batch size respectively

n_in, n_h, n_out, batch_size = 10, 5, 1, 10

第3步

由于神经网络包含输入数据的组合以获取相应的输出数据,将遵循以下相同的程序。

In [3]:

# Create dummy input and target tensors (data)

x = torch.randn(batch_size, n_in)

y = torch.tensor([[1.0], [0.0], [0.0],

[1.0], [1.0], [1.0], [0.0], [0.0], [1.0], [1.0]])

第4步

借助内置函数创建顺序模型。使用下面的代码行,创建一个顺序模型。

In [4]:

# Create a model

model = nn.Sequential(nn.Linear(n_in, n_h),

    nn.ReLU(),

    nn.Linear(n_h, n_out),

    nn.Sigmoid())

第5步

在梯度下降优化器的帮助下构造损失函数,如下所示。

In [5]:

#Construct the loss function

criterion = torch.nn.MSELoss()

# Construct the optimizer (Stochastic Gradient Descent in this case)

optimizer = torch.optim.SGD(model.parameters(), lr = 0.01)

第6步

使用给定的代码行使用迭代循环实现梯度下降模型。

In [6]:

# Gradient Descent

for epoch in range(50):

    # Forward pass: Compute predicted y by passing x to the model

    y_pred = model(x)

    # Compute and print loss

    loss = criterion(y_pred, y)

    print('epoch: ', epoch,' loss: ', loss.item())

    # Zero gradients, perform a backward pass, and update the weights.

    optimizer.zero_grad()

    # perform a backward pass (backpropagation)

    loss.backward()

    # Update the parameters

    optimizer.step()

epoch:  0  loss:  0.26868727803230286

epoch:  1  loss:  0.2684982419013977

epoch:  2  loss:  0.2683093845844269

epoch:  3  loss:  0.2681207060813904

epoch:  4  loss:  0.267932265996933

epoch:  5  loss:  0.2677440345287323

epoch:  6  loss:  0.26755601167678833

epoch:  7  loss:  0.2673681080341339

epoch:  8  loss:  0.267180472612381

epoch:  9  loss:  0.2669930160045624

epoch:  10  loss:  0.2668057382106781

epoch:  11  loss:  0.2666186988353729

epoch:  12  loss:  0.2664318084716797

epoch:  13  loss:  0.2662450969219208

epoch:  14  loss:  0.2660585939884186

epoch:  15  loss:  0.2658722996711731

epoch:  16  loss:  0.2656860947608948

epoch:  17  loss:  0.26550015807151794

epoch:  18  loss:  0.26531440019607544

epoch:  19  loss:  0.2651287913322449

epoch:  20  loss:  0.264943391084671

epoch:  21  loss:  0.2647581398487091

epoch:  22  loss:  0.26457303762435913

epoch:  23  loss:  0.26438820362091064

epoch:  24  loss:  0.2642034590244293

epoch:  25  loss:  0.2640189528465271

epoch:  26  loss:  0.26383453607559204

epoch:  27  loss:  0.2636503577232361

epoch:  28  loss:  0.2634662687778473

epoch:  29  loss:  0.26329419016838074

epoch:  30  loss:  0.2631300091743469

epoch:  31  loss:  0.2629658579826355

epoch:  32  loss:  0.2628018260002136

epoch:  33  loss:  0.2626378536224365

epoch:  34  loss:  0.262474000453949

epoch:  35  loss:  0.2623102366924286

epoch:  36  loss:  0.26214656233787537

epoch:  37  loss:  0.2619829773902893

epoch:  38  loss:  0.2618195414543152

epoch:  39  loss:  0.26165610551834106

epoch:  40  loss:  0.2614927887916565

epoch:  41  loss:  0.2613295316696167

epoch:  42  loss:  0.26116639375686646

epoch:  43  loss:  0.2610033452510834

epoch:  44  loss:  0.26084035634994507

epoch:  45  loss:  0.2606774866580963

epoch:  46  loss:  0.26051464676856995

epoch:  47  loss:  0.2603519558906555

epoch:  48  loss:  0.2601892650127411

epoch:  49  loss:  0.2600266933441162

5. 神经网络到功能块

训练深度学习算法涉及以下步骤:

  • 构建数据管道
  • 构建网络架构
  • 使用损失函数评估架构
  • 使用优化算法优化网络架构权重

训练特定的深度学习算法是将神经网络转换为功能块的确切要求,如下所示。

关于上图,任何深度学习算法都涉及获取输入数据,构建各自的架构,其中包括嵌入其中的一堆层。

观察上图,使用损失函数对神经网络权重的优化进行评估。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/40722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password‘ cannot be loaded

解决mysql数据库连接报错:Authentication plugin ‘caching_sha2_password’ cannot be loaded OperationalError: (2059, “Authentication plugin ‘caching_sha2_password’ cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open sha…

启动Nuxt-hub-starter: Failed to initialize wrangler bindings proxy write EOF

重新安装 node.js 这样做可以确保下载到了适合的 Windows 框架、Chocolatey(一款Windows包管理工具)、Python 等资源。 这个错误与Node版本、pnpm/yarn 的版本无关! Node.js — Download Node.js (nodejs.org)

汉光联创HGLM2200N黑白激光多功能一体机加粉及常见问题处理

基本参数: 机器型号:HGLM2200N 产品名称:A4黑白激光多功能一体机 基础功能:打印、扫描、复印 打印速度:22页/分钟 纸张输入容量:150-249页 单面支持纸张尺寸:A4、A5、A6 产品尺寸&#x…

MySQL数据恢复(适用于误删后马上发现)

首先解释一下标题,之所以适用于误删后马上发现是因为太久了之后时间和当时操作的数据表可能会记不清楚,不是因为日志丢失 1.首先确保自己的数据库开启了binlog(我的是默认开启的我没有配置过) 根据这篇博客查看自己的配置和自己…

鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs

一、自定义组件 1、自定义组件 自定义组件,最基础的结构如下: Component struct Header {build() {} } 提取头部标题部分的代码,写成自定义组件。 1、新建ArkTs文件,把Header内容写好。 2、在需要用到的地方,导入…

Linux 摄像头编号固化

一、前言 在工业领域,一台设备会有很多个摄像头,可以使用命令:ll /dev/video* 进行查看; 在代码中,如果需要使用摄像头,那么都是需要具体到哪个摄像头编号的,例如 open("/dev/video4"…

线段树求区间最值问题

引言 今天主要还是练了两道题,是有关线段树如何去求一个区间内的最值问题的,我们可以用线段树来解决。 对应一个无法改变顺序的数组,我们想要去求一个区间内的最值,假设有n个结点,m次询问,暴力的解决办法…

股票分析-20240628

今日关注: 20240626 六日涨幅最大: ------1--------300386--------- 飞天诚信 五日涨幅最大: ------1--------300386--------- 飞天诚信 四日涨幅最大: ------1--------300386--------- 飞天诚信 三日涨幅最大: ------1--------300386--------- 飞天诚信 二日涨幅最…

vue-org-tree搜索到对应项高亮展开

效果图&#xff1a; 代码&#xff1a; <template><div class"AllTree"><el-form :inline"true" :model"formInline" class"demo-form-inline"><el-form-item><el-input v-model"formInline.user&quo…

js学习--制作猜数字

猜数字制作 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><script>function fun() {alert("1-100猜数字");let num Math.floor(Math.random() * 100) 1;for …

12个视觉艺术分类

视觉设计可以按照多种方式进行分类&#xff0c;这些分类通常基于设计的目的、风格或应用场景。本文为大家介绍12种视觉设计&#xff0c;分别是平面设计、标志设计、包装设计、用户界面设计 (UI Design)、用户体验设计 (UX Design)、插图设计、网页设计、动画设计、展览设计、环…

Python小练习05

一 绘制如下图形。 #Q1 import turtle as t def draw(n):for i in range(n):t.left(30)t.fd(100)t.left(120)t.fd(100)t.left(120)t.fd(100)t.left(120)t.fd(100)t.right(90) t.penup() t.goto(-150,20) t.speed(0) t.pendown() t.pencolor("red") t.pensize(5) draw…

flask项目部署总结

这个部署的时候要用虚拟环境&#xff0c;cd进项目文件夹 python3 -m venv myenv source myenv/bin/activate激活 之后就安装一些库包之类的&#xff0c;&#xff08;flask&#xff0c;requests,bs4,等等&#xff09; 最重要的是要写.flaskenv文件并且pip install 一个能运行…

单调栈(左小大,右小大)

①寻找每个数左边第一个比它小的数 给定一个长度为 N 的整数数列&#xff0c;输出每个数左边第一个比它小的数&#xff0c;如果不存在则输出 −1。 输入样例&#xff1a; 3 4 2 7 5 输出样例&#xff1a; -1 3 -1 2 2 从左到右遍历&#xff0c;用单调递增&#xff08;栈底到栈顶…

数据看板/可视化大屏的实际价值到底是什么?详解数据可视化的实用之处

数据驾驶舱/数据看板/可视化大屏的实际价值&#xff0c;取决于使用者的实际需求。 华而不实&#xff1f;华就是实&#xff01; 关于可视化大屏最广泛的争议&#xff0c;便是对其“华而不实”的批评&#xff0c;认为可视化大屏缺乏技术含量&#xff0c;只是一钟比较高级的“装饰…

推荐 2个功能强大的黑科技工具,真的会让你直呼卧槽

Waifu2X Waifu2x 是一个基于深度学习的开源项目&#xff0c;主要用于处理二次元动漫风格的图像。它使用卷积神经网络&#xff08;CNN&#xff09;进行超分辨率处理和降噪&#xff0c;能够将图像放大2倍或更多&#xff0c;同时显著提高清晰度和减少噪声。Waifu2x 特别针对日系漫…

小龙虾优化24种机器学习多输入单输出回归|时序预测模型

小龙虾优化24种机器学习多输入单输出回归|时序预测模型 文章目录 小龙虾优化24种机器学习多输入单输出回归|时序预测模型前言一、小龙虾优化基本原理二、优化机器学习模型1.COA-CNN-BiGRU-Attention回归模型2.基于小龙虾优化支持向量机的数据回归预测Matlab程序COA-SVM 多特征输…

使用微信开发者工具连接gitee

编写代码 打开微信开发者工具 编写小程序代码 提交代码 在微信开发者工具提交代码到gitee仓库的步骤&#xff1a; 1.在gitee创建仓库&#xff0c;得到仓库url 2.微信开发者工具设置远程仓库 点击版本管理-->点击设置-->网络和认证-->认证方式选择 使用用户名和…

STM32工业自动化控制系统教程

目录 引言环境准备工业自动化控制系统基础代码实现&#xff1a;实现工业自动化控制系统 4.1 数据采集模块 4.2 数据处理与分析 4.3 控制系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;工业自动化与优化问题解决方案与优化收尾与总结 1. 引言 工业自动化控制系统利用…

MySQL 如何实现将数据实时同步到 ES ?

引言&#xff1a;在现代应用程序开发中&#xff0c;通常会将数据存储在 MySQL 中&#xff0c;用于事务性处理和数据持久化。而 Elasticsearch&#xff08;ES&#xff09;则是一种专门用于全文搜索和分析的强大工具。将这两者结合使用的一个常见需求是实时将 MySQL 中的数据同步…