【day 52】神经网络调参指南

@浙大疏锦行

import torch import torch.nn as nn # 定义简单的线性模型(无隐藏层) # 输入2个纬度的数据,得到1个纬度的输出 class SimpleNet(nn.Module): def __init__(self): super(SimpleNet, self).__init__() # 线性层:2个输入特征,1个输出特征 self.linear = nn.Linear(2, 1) def forward(self, x): # 前向传播:y = w1*x1 + w2*x2 + b return self.linear(x) # 创建模型实例 model = SimpleNet() # 查看模型参数 print("模型参数:") for name, param in model.named_parameters(): print(f"{name}: {param.data}")
import torch import torch.nn as nn import matplotlib.pyplot as plt import numpy as np # 设置设备 device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") # 定义极简CNN模型(仅1个卷积层+1个全连接层) class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() # 卷积层:输入3通道,输出16通道,卷积核3x3 self.conv1 = nn.Conv2d(3, 16, kernel_size=3, padding=1) # 池化层:2x2窗口,尺寸减半 self.pool = nn.MaxPool2d(kernel_size=2) # 全连接层:展平后连接到10个输出(对应10个类别) # 输入尺寸:16通道 × 16x16特征图 = 16×16×16=4096 self.fc = nn.Linear(16 * 16 * 16, 10) def forward(self, x): # 卷积+池化 x = self.pool(self.conv1(x)) # 输出尺寸: [batch, 16, 16, 16] # 展平 x = x.view(-1, 16 * 16 * 16) # 展平为: [batch, 4096] # 全连接 x = self.fc(x) # 输出尺寸: [batch, 10] return x # 初始化模型 model = SimpleCNN() model = model.to(device) # 查看模型结构 print(model) # 查看初始权重统计信息 def print_weight_stats(model): # 卷积层 conv_weights = model.conv1.weight.data print("\n卷积层 权重统计:") print(f" 均值: {conv_weights.mean().item():.6f}") print(f" 标准差: {conv_weights.std().item():.6f}") print(f" 理论标准差 (Kaiming): {np.sqrt(2/3):.6f}") # 输入通道数为3 # 全连接层 fc_weights = model.fc.weight.data print("\n全连接层 权重统计:") print(f" 均值: {fc_weights.mean().item():.6f}") print(f" 标准差: {fc_weights.std().item():.6f}") print(f" 理论标准差 (Kaiming): {np.sqrt(2/(16*16*16)):.6f}") # 改进的可视化权重分布函数 def visualize_weights(model, layer_name, weights, save_path=None): plt.figure(figsize=(12, 5)) # 权重直方图 plt.subplot(1, 2, 1) plt.hist(weights.cpu().numpy().flatten(), bins=50) plt.title(f'{layer_name} 权重分布') plt.xlabel('权重值') plt.ylabel('频次') # 权重热图 plt.subplot(1, 2, 2) if len(weights.shape) == 4: # 卷积层权重 [out_channels, in_channels, kernel_size, kernel_size] # 只显示第一个输入通道的前10个滤波器 w = weights[:10, 0].cpu().numpy() plt.imshow(w.reshape(-1, weights.shape[2]), cmap='viridis') else: # 全连接层权重 [out_features, in_features] # 只显示前10个神经元的权重,重塑为更合理的矩形 w = weights[:10].cpu().numpy() # 计算更合理的二维形状(尝试接近正方形) n_features = w.shape[1] side_length = int(np.sqrt(n_features)) # 如果不能完美整除,添加零填充使能重塑 if n_features % side_length != 0: new_size = (side_length + 1) * side_length w_padded = np.zeros((w.shape[0], new_size)) w_padded[:, :n_features] = w w = w_padded # 重塑并显示 plt.imshow(w.reshape(w.shape[0] * side_length, -1), cmap='viridis') plt.colorbar() plt.title(f'{layer_name} 权重热图') plt.tight_layout() if save_path: plt.savefig(f'{save_path}_{layer_name}.png') plt.show() # 打印权重统计 print_weight_stats(model) # 可视化各层权重 visualize_weights(model, "Conv1", model.conv1.weight.data, "initial_weights") visualize_weights(model, "FC", model.fc.weight.data, "initial_weights") # 可视化偏置 plt.figure(figsize=(12, 5)) # 卷积层偏置 conv_bias = model.conv1.bias.data plt.subplot(1, 2, 1) plt.bar(range(len(conv_bias)), conv_bias.cpu().numpy()) plt.title('卷积层 偏置') # 全连接层偏置 fc_bias = model.fc.bias.data plt.subplot(1, 2, 2) plt.bar(range(len(fc_bias)), fc_bias.cpu().numpy()) plt.title('全连接层 偏置') plt.tight_layout() plt.savefig('biases_initial.png') plt.show() print("\n偏置统计:") print(f"卷积层偏置 均值: {conv_bias.mean().item():.6f}") print(f"卷积层偏置 标准差: {conv_bias.std().item():.6f}") print(f"全连接层偏置 均值: {fc_bias.mean().item():.6f}") print(f"全连接层偏置 标准差: {fc_bias.std().item():.6f}")

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

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

相关文章

西门子 S7 - 200 SMART 与台达变频器 485 通讯实现触摸屏控制

西门子s7 200smart与台达变频器485通讯 目标:用触摸屏和西门子smart 控制变频器通讯 器件:西门子s7 200 smart PLC,台达VFD-M变频器,昆仑通态触摸屏(带以太网),中途可以加路由器 控制方式:触摸屏与plc以太网…

Java毕设项目推荐-基于SpringBoot+vue的保护动物公益救助交流活动平台基于SpringBoot濒危物种公益救助交流平台【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

收藏级!大模型核心架构与底层原理全解析,小白程序员入门必看

当下,生成式大模型正以颠覆性态势席卷全球科技领域,一场围绕“模型主导未来”的产业竞争已全面铺开。对于深耕IT行业的从业者而言,这场技术浪潮绝非单纯的迭代升级,更在悄然重塑整个技术生态——过去依赖独立软件实现功能的传统模…

定时任务简单源码思路手撕实现

定时任务简单源码思路手撕实现 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.locks.LockSupport;public class ScheduleService {Trigger trigger …

Java swing mysql实现的酒店管理系统_javswing酒店管理系统mysql,零基础入门到精通,收藏这篇就够了

1、散客开单:完成散客的开单,可一次最多开5间相同类型的房间。 2、团体开单:完成团体的开单,开放数量没有限制,可同时开不同类型的房间。 3、宾客结帐:自动统计每个登记客人在店时所发生的消费额和应付款额…

没加 FOR UPDATE 也会加锁吗?真相来了!

视频看了几百小时还迷糊?关注我,几分钟让你秒懂!很多开发者有个误区:“只有写了 SELECT ... FOR UPDATE 才会加锁,普通的 UPDATE 不会加锁。”这是完全错误的!今天我们就用 Spring Boot MySQL(…

Commons-io工具包与Hutool工具包

Commons-io Commons-io是apache开源基金组织提供的一组有关IO操作的开源工具包 作用:提高I0流的开发效率。 FileUtils类(文件/文件夹相关) static void copyFile(File srcFile,File destFile) 复制文件 static void copyDirectory(File srcDir,File destDir) 复制文件夹 stat…

TRO 基于扩散模型的轮椅共享控制用户意图估计研究

在智能轮椅的辅助导航中,如何在保障安全的同时尊重用户的自主意愿,一直是人机交互领域的核心难题。传统的意图预测方法往往试图给出唯一的“标准答案”,这容易在复杂环境中引发误判。本文介绍了一种名为 DIWIE(基于扩散模型的轮椅…

MySQL性能优化:从底层原理到实战落地的全维度方案

在数据驱动的业务场景中,MySQL作为主流开源关系型数据库,其性能直接决定系统响应速度、吞吐量与运维成本。尤其对于高并发、大数据量的平台(如DeepSeek这类AI服务场景),慢查询与不合理索引设计可能引发系统卡顿甚至雪崩…

【课程设计/毕业设计】基于SpringBoot保护濒危野生动物公益救助交流平台基于SpringBoot濒危物种公益救助交流平台【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

JVM 里的逻辑漏洞,居然让你的哈希表慢了 20%!

首先来看一段 Java 代码&#xff1a; int sumMapElements(ConcurrentHashMap<Integer, Integer> map) {int sum 0;Enumeration<Integer> it map.elements();while (it.hasMoreElements()) {sum (int) it.nextElement();}return sum; } 函数 sumMapElements 使…

构建智能Agent的三大支柱:上下文工程、会话管理与记忆系统

Google白皮书系统阐述了构建有状态LLM智能体的核心方法——上下文工程。通过上下文工程、会话管理和记忆系统三大支柱&#xff0c;文章详细介绍了如何突破LLM无状态限制&#xff0c;实现智能体的记忆、学习和个性化交互能力。通过动态组装相关信息、管理会话状态和持久化关键记…

收藏备用!AI+多领域变革全解析:大模型如何重塑产业生态

本文深度拆解“AI”在医疗、金融、制造等核心领域的颠覆性变革&#xff0c;结合大模型应用实例&#xff0c;具象化展现人工智能如何重构行业运行逻辑与生态格局。从医疗健康领域“治未病”的主动防控&#xff0c;到金融行业“数字神经系统”的智能风控&#xff0c;从制造业向“…

收藏备用|RAG技术架构三阶段演进全解析(从入门到进阶,小白也能懂)

RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;作为大语言模型&#xff08;LLM&#xff09;落地垂直领域的核心支撑技术&#xff0c;其核心价值在于为LLM“外挂”可定制化专属知识库&#xff0c;通过“检索外部信息→精准辅助生成”的闭环…

毕业论文通关秘籍:宏智树 AI 教你避开 80% 写作坑

作为深耕论文写作科普的教育博主&#xff0c;每年毕业季后台都会被各种论文难题刷屏&#xff1a;“选题太老被导师驳回怎么办&#xff1f;”“文献综述写得像流水账怎么救&#xff1f;”“查重率降不下来&#xff0c;越改越乱咋整&#xff1f;” 毕业论文写作&#xff0c;就像一…

AI 写论文哪个软件最好?实测封神!宏智树 AI 堪称毕业论文通关外挂

作为深耕论文写作科普的教育测评博主&#xff0c;后台每天都被毕业生的灵魂拷问刷屏&#xff1a;“AI 写论文工具琳琅满目&#xff0c;到底哪款能真正解决选题难、文献杂、数据空、查重高的痛点&#xff1f;” 市面上的 AI 写作软件分为三个梯队&#xff1a;文字生成器只会简单…

写论文软件哪个好?实测宏智树 AI:毕业论文的全流程效率神器

作为深耕论文写作科普的教育测评博主&#xff0c;每年毕业季后台都会被 “写论文软件哪个好” 的提问刷屏。不少同学踩坑无数&#xff1a;有的工具生成内容空洞无物&#xff0c;有的文献引用漏洞百出&#xff0c;有的查重结果与学校标准脱节。经过多轮深度实测&#xff0c;宏智…

吐血推荐9个一键生成论文工具,本科生毕业论文轻松搞定!

吐血推荐9个一键生成论文工具&#xff0c;本科生毕业论文轻松搞定&#xff01; 论文写作的救星&#xff1a;AI 工具如何改变你的学术之路 随着人工智能技术的不断进步&#xff0c;越来越多的 AI 工具开始走进高校课堂&#xff0c;为本科生的论文写作带来前所未有的便利。无论是…

西门子SMART触摸屏与两台变频器的Modbus RTU通讯实战

西门子SMART触摸屏与2台变频器通讯&#xff0c;通过modbus rtu与三菱FR-D700、台达MS300变频器通讯&#xff0c;实现正反转控制、频率设定&#xff0c;读取输出频率、输出电压、输出电流&#xff0c;有详细的程序说明和源程序文件&#xff0c;文档使用云笔记整理撰写最近在项目…

春节年货节营销冲刺!AI工具助力快速生成品牌VI全套设计

春节临近&#xff0c;各大品牌纷纷进入了年货节的营销大战&#xff0c;春节品牌VI设计成为了市场营销的重中之重。作为一名资深物料设计师&#xff0c;每年春节期间&#xff0c;工作量大、时间紧迫&#xff0c;面对客户的设计需求&#xff0c;我常常需要在最短时间内&#xff0…