网站上传后怎么访问网站建设及优化重要性

张小明 2026/1/3 3:44:41
网站上传后怎么访问,网站建设及优化重要性,做家政公司网站,在后台怎么做网站内链浙大疏锦行 1.模型结构可视化 理解一个深度学习网络最重要的2点#xff1a; 1. 了解损失如何定义的#xff0c;知道损失从何而来----把抽象的任务通过损失函数量化出来 2. 了解参数总量#xff0c;即知道每一层的设计才能退出---层设计决定参数总量 为了了解参数总量浙大疏锦行1.模型结构可视化理解一个深度学习网络最重要的2点1. 了解损失如何定义的知道损失从何而来----把抽象的任务通过损失函数量化出来2. 了解参数总量即知道每一层的设计才能退出---层设计决定参数总量为了了解参数总量我们需要知道层设计以及每一层参数的数量。下面介绍1几个层可视化工具1.1nn.module方法# nn.Module 的内置功能返回模型的可训练参数迭代器 for name, param in model.named_parameters(): print(fParameter name: {name}, Shape: {param.shape})可以将模型中带有weight的参数即权重提取出来并转为 numpy 数组形式对其计算统计分布并且绘制可视化图表# 提取权重数据 import numpy as np weight_data {} for name, param in model.named_parameters(): if weight in name: weight_data[name] param.detach().cpu().numpy() # 可视化权重分布 fig, axes plt.subplots(1, len(weight_data), figsize(15, 5)) fig.suptitle(Weight Distribution of Layers) for i, (name, weights) in enumerate(weight_data.items()): # 展平权重张量为一维数组 weights_flat weights.flatten() # 绘制直方图 axes[i].hist(weights_flat, bins50, alpha0.7) axes[i].set_title(name) axes[i].set_xlabel(Weight Value) axes[i].set_ylabel(Frequency) axes[i].grid(True, linestyle--, alpha0.7) plt.tight_layout() plt.subplots_adjust(top0.85) plt.show() # 计算并打印每层权重的统计信息 print(\n 权重统计信息 ) for name, weights in weight_data.items(): mean np.mean(weights) std np.std(weights) min_val np.min(weights) max_val np.max(weights) print(f{name}:) print(f 均值: {mean:.6f}) print(f 标准差: {std:.6f}) print(f 最小值: {min_val:.6f}) print(f 最大值: {max_val:.6f}) print(- * 30)对比 fc1.weight 和 fc2.weight 的结果统计信息 可以发现它们的均值、标准差、最值等存在差异。这反映了不同层在模型中的作用不同。权重统计信息可以为超参数调整提供参考。例如如果发现权重标准差过大导致训练不稳定可以尝试调整学习率使权重更新更平稳或者改变权重初始化方法使初始权重分布更合理。如果最小值和最大值在训练后期仍波动较大可能需要考虑调整正则化参数防止过拟合或欠拟合。1.2 torchsummary库的summary方法from torchsummary import summary # 打印模型摘要可以放置在模型定义后面 summary(model, input_size(4,))该方法不显示输入层的尺寸因为输入的神经网是自己设置的所以不需要显示输入层的尺寸。但是在使用该方法时input_size(4,) 参数是必需的因为 PyTorch 需要知道输入数据的形状才能推断模型各层的输出形状和参数数量。这是因为PyTorch 的模型在定义时是动态的它不会预先知道输入数据的具体形状。nn.Linear(4, 10) 只定义了 “输入维度是 4输出维度是 10”但不知道输入的批量大小和其他维度比如卷积层需要知道输入的通道数、高度、宽度等信息。----并非所有输入数据都是结构化数据因此要生成模型摘要如每层的输出形状、参数数量必须提供一个示例输入形状让 PyTorch “运行” 一次模型从而推断出各层的信息。summary 函数的核心逻辑是1. 创建一个与 input_size 形状匹配的虚拟输入张量通常填充零2. 将虚拟输入传递给模型执行一次前向传播但不计算梯度3. 记录每一层的输入和输出形状以及参数数量4. 生成可读的摘要报告其中最开始的参数的值是默认初始化的初始化有很多方法后面接触到复杂的模型再提构建神经网络的时候1. 输入层不需要写x多少个特征 输入层就有多少神经元2. 隐藏层需要写从第一个隐藏层可以看出特征的个数3. 输出层的神经元和任务有关比如分类任务输出层有3个神经元一个对应每个类别上图只是帮助你理解和上述架构不同每条线记录权重w在每个神经元内计算并且输出Relu(w*xb)可以看做线记录权重神经元记录偏置和损失函数可学习参数计算1. Linear-1对应self.fc1 nn.Linear(4, 10)表明前一层有4个神经元这一层有10个神经元每2个神经元之间靠着线相连所有有4*10个权重参数10个偏置参数50个参数2. relu层不涉及可学习参数可以把它和前一个线性层看成一层图上也是这个含义3. Linear-3层对应代码 self.fc2 nn.Linear(10,3),10*3个权重参数3个偏置33个参数总参数83个占用内存几乎为01.3 torchinfo库的summary方法torchinfo 是提供比 torchsummary 更详细的模型摘要信息包括每层的输入输出形状、参数数量、计算量等。from torchinfo import summary summary(model, input_size(4, ))二、进度条供能我们介绍下tqdm这个库他非常适合用在循环中观察进度。尤其在深度学习这种训练是循环的场景中。他最核心的逻辑如下1. 创建一个进度条对象并传入总迭代次数。一般用with语句创建对象这样对象会在with语句结束后自动销毁保证资源释放。with是常见的上下文管理器这样的使用方式还有用with打开文件结束后会自动关闭文件。2. 更新进度条通过pbar.update(n)指定每次前进的步数n适用于非固定步长的循环。2.1手动更新from tqdm import tqdm # 先导入tqdm库 import time # 用于模拟耗时操作 # 创建一个总步数为10的进度条 with tqdm(total10) as pbar: # pbar是进度条对象的变量名 # pbar 是 progress bar进度条的缩写约定俗成的命名习惯。 for i in range(10): # 循环10次对应进度条的10步 time.sleep(0.5) # 模拟每次循环耗时0.5秒 pbar.update(1) # 每次循环后进度条前进1步 from tqdm import tqdm import time # 创建进度条时添加描述desc和单位unit with tqdm(total5, desc下载文件, unit个) as pbar: # 进度条这个对象可以设置描述和单位 # desc是描述在左侧显示 # unit是单位在进度条右侧显示 for i in range(5): time.sleep(1) pbar.update(1) # 每次循环进度1unit 参数的核心作用是明确进度条中每个进度单位的含义使可视化信息更具可读性。在深度学习训练中常用的单位包括- epoch训练轮次遍历整个数据集一次。- batch批次每次梯度更新处理的样本组。- sample样本单个数据点2.2自动更新from tqdm import tqdm import time # 直接将range(3)传给tqdm自动生成进度条 # 这个写法我觉得是有点神奇的直接可以给这个对象内部传入一个可迭代对象然后自动生成进度条 for i in tqdm(range(3), desc处理任务, unitepoch): time.sleep(1) # 用tqdm的set_postfix方法在进度条右侧显示实时数据如当前循环的数值、计算结果等 from tqdm import tqdm import time total 0 # 初始化总和 with tqdm(total10, desc累加进度) as pbar: for i in range(1, 11): time.sleep(0.3) total i # 累加123...10 pbar.update(1) # 进度1 pbar.set_postfix({当前总和: total}) # 显示实时总和三、模型的推理之前我们说完了训练模型那么现在我们来测试模型。测试这个词在大模型领域叫做推理inference意味着把数据输入到训练好的模型的过程。# 在测试集上评估模型此时model内部已经是训练好的参数了 # 评估模型 model.eval() # 设置模型为评估模式 with torch.no_grad(): # torch.no_grad()的作用是禁用梯度计算可以提高模型推理速度 outputs model(X_test) # 对测试数据进行前向传播获得预测结果 _, predicted torch.max(outputs, 1) # torch.max(outputs, 1)返回每行的最大值和对应的索引 #这个函数返回2个值分别是最大值和对应索引参数1是在第1维度行上找最大值_ 是Python的约定表示忽略这个返回值所以这个写法是找到每一行最大值的下标 # 此时outputs是一个tensorp每一行是一个样本每一行有3个值分别是属于3个类别的概率取最大值的下标就是预测的类别 # predicted y_test判断预测值和真实值是否相等返回一个tensor1表示相等0表示不等然后求和再除以y_test.size(0)得到准确率 # 因为这个时候数据是tensor所以需要用item()方法将tensor转化为Python的标量 # 之所以不用sklearn的accuracy_score函数是因为这个函数是在CPU上运行的需要将数据转移到CPU上这样会慢一些 # size(0)获取第0维的长度即样本数量 correct (predicted y_test).sum().item() # 计算预测正确的样本数 accuracy correct / y_test.size(0) print(f测试集准确率: {accuracy * 100:.2f}%)模型的评估模式简单来说就是评估阶段会关闭一些训练相关的操作和策略 比如更新参数 正则化等操作确保模型输出结果的稳定性和一致性。可能有同学好奇为什么评估模式不关闭梯度计算推理不是不需要更新参数么主要还是因为在某些场景下评估阶段可能需要计算梯度虽然不更新参数。例如计算梯度用于可视化如 CAM 热力图主要用于cnn相关。所以为了避免这种需求不被满足还是需要手动关闭梯度计算。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

教育局建设网站的必要性二级域名网站优化

32B参数!IBM Granite-4.0大模型重磅发布,强化工具调用与多语言能力 【免费下载链接】granite-4.0-h-small 项目地址: https://ai.gitcode.com/hf_mirrors/ibm-granite/granite-4.0-h-small IBM近日正式发布了旗下最新一代大语言模型Granite-4.0系…

张小明 2026/1/2 2:37:34 网站建设

服装设计师参考的网站php网站访问很慢

适用情况 常规情况 能够识别到一个设备 需要解决情况 能正常识别 stlink 但是无法在 keil 出现设备,为 no target connect。 如果没有接错 SWCLK 和 SWDIO,以及 BOOT 都为 0 的话,直接通过初始化(擦除所有程序)芯片来实现解锁 …

张小明 2026/1/2 2:37:36 网站建设

金华自助建站购买保险的网站

使用 QWebChannel 实现 JS 与 C 双向通信(超详细 踩坑总结 Demo) 在基于 QWebEngine 的项目中,要让 前端 JavaScript 与 后端 C 互相通信,是非常关键的能力。 Qt 官方提供的方案就是 QWebChannel,它能让你像调用本地…

张小明 2026/1/2 2:37:35 网站建设

宝应县天宇建设网站移动网站套餐

你是否曾经想过,在手机上就能流畅运行《赛博朋克2077》或《艾尔登法环》这样的PC大作?Moonlight安卓串流技术让这个梦想成为现实。本文将为你提供从环境配置到性能优化的完整解决方案。 【免费下载链接】moonlight-android GameStream client for Androi…

张小明 2026/1/2 2:37:38 网站建设

江西中联建设集团有限公司网站北京网站制作哪家好

终极指南:如何免费获取高质量的Opus音频测试文件 【免费下载链接】Opus格式音频测试文件下载 探索Opus格式音频的魅力!本项目提供四份高质量的Opus音频测试文件,每份文件均为48k采样率的立体声,时长约2分钟,大小仅2MB。…

张小明 2026/1/1 15:49:54 网站建设

北京电子商务app网站建设大兴jsp做的网站后台信息

今天更新了RustRover,由2025.2升级到2025.3,除了UI风格有些变化外,发现GIT操作很慢,表现如下: 执行commit需要5分钟才能完成,即便只修改了一个文件执行pull也需要3分钟左右点击顶部的分支下拉框&#xff0c…

张小明 2026/1/2 2:37:37 网站建设