神经网络搭建实战与Sequential的使用

一、需要处理的图像

1e60aacc84294e5683fb32b40cd3b73d.jpeg二、对上述图片用代码表示:

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linearclass SUN(nn.Module):def __init__(self):super(SUN, self).__init__()self.conv1 = Conv2d(3, 32, 5, padding=2)self.maxpool1 = MaxPool2d(2)self.conv2 = Conv2d(32, 32, 2,padding=2)self.maxpool2 = MaxPool2d(2)self.conv3 = Conv2d(32, 64, 5, padding=2)self.maxpool3 = MaxPool2d(2)self.flatten = Flatten()self.linear1 = Linear(1024, 64)self.linear2 = Linear(64, 10)def forward(self,x):x = self.conv1(x)x = self.maxpool1(x)x = self.conv2(x)x = self.maxpool2(x)x = self.conv3(x)x = self.maxpool3(x)x = self.flatten(x)x = self.linear1(x)x = self.linear2(x)return xsun = SUN()
print(sun)# 写完网络检查网络的正确性,因为即使改变其中的一些参数,该网络还是能够正常的运行,所以需要检验
# 创建一个假象的输入
input = torch.ones((64,3,32,32))
output = sun(input)
print(output.shape)

实现的结果:

42373df4fd564f79b47d5fb12fd5226b.png

三、用 Sequential简化

但是,在class的使用中,频繁的写self.....是非常复杂,不简洁的,于是有了Sequential:

代码如下简洁:

import torch
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequentialclass SUN(nn.Module):def __init__(self):super(SUN, self).__init__()   self.model1 = Sequential(Conv2d(3, 32, 5, padding=2),MaxPool2d(2),Conv2d(32, 32, 2, padding=2),MaxPool2d(2),Conv2d(32, 64, 5, padding=2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10) )def forward(self, x):   x =self.model1(x)return xsun = SUN()
print(sun)# 写完网络检查网络的正确性,因为即使改变其中的一些参数,该网络还是能够正常的运行,所以需要检验
# 创建一个假象的输入
input = torch.ones((64,3,32,32))
output = sun(input)
print(output.shape)

实现的结果是一样的,但是,较为的简洁。

四、使用tensorboard可视化

# 使用tensorboard来可视化:
writer = SummaryWriter("logs_seq")
writer.add_graph(sun, input)
writer.close()

注意,此处使用的是add_graph()。

tensorboard中的add_graph方法用于可视化ptorch模型的计算图。‌TensorBoard是一个强大的可视化工具,它允许用户以交互式的方式查看和理解模型的训练过程和结构。在PyTorch中,add_graph方法是SummaryWriter类的一个功能,它可以将PyTorch模型的计算图以图形化的形式展示出来。通过这种方法,用户可以直观地看到模型中各个操作之间的依赖关系,以及数据在模型中的流动情况。这对于理解模型的内部工作机制、调试模型以及优化模型设计都非常有帮助。

tensorboard显示不出来的问题:使用了下述语句查看:

tensorboard --logdir =learningplan1/logs_seq

结果:

fdbc85c430194732bba73365e9cbb961.png

对其改正:加入端口6007

tensorboard --logdir=learningplan1/logs_seq --port=6007

最终正确查看,注:双击可以打开网络:

输入,经过搭建的SUN网络到达输出。

1bb09aeaa40d46c5b89fac1fb7592d51.png

通过双击网络模块,可查询相关的参数等:

44cb676b2ddf408faad91e979e4cb4f8.png

网络搭建成功。
 

 

 

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

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

相关文章

RSTP的改进有哪些

华为设备生成树有几种模式? 4种模式:传统STP(802.1D)、RSTP(802.1w)、MSTP(802.1s)、VBST(基于VLAN的生成树,兼容某些厂商的每VLAN一颗生成树) A…

【大数据算法】时间亚线性算法之:串相等判定算法。

串相等判定算法 1、引言2、串相等判定算法2.1 定义2.2 核心原理2.3 应用场景2.4 算法公式2.4.1 Rabin-Karp算法2.4.2 哈希函数 2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥, 啥是串相等判定算法啊 小鱼:这个… en…en… 小屌丝:咋…

Rust Linux开发人员自比道路建设者和寻路者的区别

红帽公司(Red Hat)的长期直接渲染管理器(Direct Rendering Manager,DRM)子系统维护者大卫-艾尔里(David Airlie)撰写了一篇有趣的博文,将开发人员的类型与筑路工人、寻路者与酒店进行…

swift自定义数据集微调Qwen-7B大模型,转换模型后使用ollama跑起来

前文:swift微调Qwen-7B大模型-CSDN博客 我详细介绍了swift如何进行微调,但数据集均来自魔搭社区,如何想训练自定义数据集,实际上也很简单。 一、自定义数据集微调 export MKL_THREADING_LAYERGNU \ CUDA_VISIBLE_DEVICES0,1,2…

本地编写Markdown格式文件,浏览器查看

编写准备 下载VsCode并安装,打开后在内部安装Markdown All in One、Markdown Preview Enhanced、Paste Image三个插件。新建一个文件夹用以后期保存你的笔记等文件在左侧新建文件,.md结尾,即完成创建右侧可实时的查看你的编写结果&#xff0…

大模型赋能风控运营:效率跃升的密码

一、大模型助力风控运营的背景与趋势 大模型兴起的背景 随着金融行业的迅速发展和数据量的爆炸式增长,传统的风控运营手段逐渐难以满足复杂多变的风险形势。大数据、人工智能等技术的不断进步,为大模型在风控运营领域的应用提供了技术支撑。金融机构面…

【算法】演员~评论家方法

一、引言 演员-评论家算法(Actors-Critics Method)是一种用于并发编程中的同步机制,用于解决多线程环境下的资源竞争问题。与传统的锁和信号量等同步工具不同,演员-评论家方法采用更加灵活的协作策略。算法结合了策略梯度&#xf…

PyQt5:pycharm设置及使用

前言 PyQt5 是一个用于创建图形用户界面的 Python 库,它是 Qt 应用程序框架的 Python 绑定。Qt 是一个广泛使用的跨平台 C 框架,PyQt5 允许开发者使用 Python 编写图形界面应用程序,而不必直接使用 C。 为了方便地使用它,我尝试在…

【MySQL进阶之路】数据库的操作

目录 创建数据库 字符集和校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 指定字符集和校验规则 在配置文件中配置 查看数据库 显示创建语句 修改数据库 删除数据库 数据库的备份和恢复 备份整个数据库 备份特定表 备份多个数据库 备份所有数据…

【大模型】LangChain基础学习

前言:LangChain是一个用于构建端到端语言模型应用的框架 目录 1. 基础知识2. 基本使用2.1 安装2.2 启动示例2.3 使用prompt2.4 输出解析器 3. 相关应用3.1 RAG 参考文献 1. 基础知识 六大组件 模型(Models):包含各大语言模型的LangChain接口…

Redis从入门到入门(上)

1.Redis概述 文章目录 1.Redis概述1.1 什么是Redis1.2 Redis的应用场景 2.Linux下Redis的安装与使用2.1 Redis下载2.2 Redis的启动2.3 Redis配置2.4 连接Redis 1.1 什么是Redis Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库&#xff0…

MATLAB生成COE文件

MATLAB代码 % 参数设置 N 4096; % 数据点数量 t linspace(0, 2*pi, N); % 时间向量 width 12; % 位宽% 正弦波,幅度在0到5之间 sine_wave 2.5 * sin(t) 2.5;% 三角波,幅度在0到5之间 tri_wave 5 * (1 - abs(mod(t/(2*pi)*4, 2) - 1));% 方波&…

springboot集成七牛云上传文件

大体思路 上传 前端上传MultipartFile file 文件 进行名字空值校验和格式校验,大概就是判断后缀是不是属于jpg.png 生成唯一uuid名称,然后拿着这个文件名和图片文件File调接口 接口参数为 输入流inputstream,将file化流传输文件名上传t…

多线程+连接池+代理 运行一段时间线程阻塞,如何解决??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

<Rust>egui学习之小部件(四):如何在窗口中添加滚动条Scroll部件?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析,主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统:windows 平台:visual studio code 语言:rust 库:egui、eframe 概述 本文是本专栏的第四篇博…

今日算法:蓝桥杯基础题之“切面条”

你好同学,我是沐爸,欢迎点赞、收藏、评论和关注!个人知乎 从今天开始,一起了解算法,每日一题,从 JavScript 的技术角度进行解答,如果你对算法也感兴趣,请多多关注哦。 问题描述 一…

【深度学习与NLP】——深度卷积神经网络AlexNet

目录 一、卷积神经网络的发展历程 二、简要介绍 三、代码实现 四、缺点和过时的地方 一、卷积神经网络的发展历程 早期理论基础阶段(20 世纪 60 年代 - 80 年代): 1968 年,Hubel 和 Wiesel 通过对猫视觉神经的研究&#xff0…

Hibernate 批量插入速度慢的原因和解决方法

由于业务需要一次性连续写入超过10k条以上的新数据,当对象超过10个成员变量以后,整个写入过程居然需要长达35秒,这个速度是不能接受的,故此研究了一下怎么开启Hibernate批量写入的功能。 我这边使用的是Hibernate 5.6.15 在网上…

Python 从入门到实战3(列表的简单操作)

我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。 上篇文章我们通过python小栗子来学习python基础知识语法&#xff…

C语言中的“#”和“##”

目录 开头1.什么是#?2.什么是##?3.#和##的实际应用输出变量的名字把两个符号连接成一个符号输出根据变量的表达式…… 下一篇博客要说的东西 开头 大家好,我叫这是我58。在今天,我们要学一下关于C语言中的#和##的一些知识。 1.什么是#? #&#xff0…