黄色视频做爰网站安全/查域名注册详细信息查询

黄色视频做爰网站安全,查域名注册详细信息查询,阿里域名注册查询,企业b2b电子商务网站可以学习如下内容: • 介绍神经网络核心组件。 • 如何构建一个神经网络。 • 详细介绍如何构建一个神经网络。 • 如何使用nn模块中Module及functional。 • 如何选择优化器。 • 动态修改学习率参数。 5.1 核心组件 神经网络核心组件不多,把这些…

可以学习如下内容:

• 介绍神经网络核心组件。

• 如何构建一个神经网络。

• 详细介绍如何构建一个神经网络。

• 如何使用nn模块中Module及functional。

• 如何选择优化器。

• 动态修改学习率参数。

5.1 核心组件

神经网络核心组件不多,把这些组件确定后,这个神经网络基本就确定了。这些核心组件包括:

1)层:神经网络的基本结构,将输入张量转换为输出张量。

2)模型:层构成的网络。

3)损失函数:参数学习的目标函数,通过最小化损失函数来学习各种参数。

4)优化器:如何使损失函数最小,这就涉及优化器。

多个层链接在一起构成一个模型或网络,输入数据通过这个模型转换为预测值,然后损失函数把预测值与真实值进行比较,得到损失值(损失值可以是距离、概率值等)​,该损失值用于衡量预测值与目标结果的匹配或相似程度,优化器利用损失值更新权重参数,从而使损失值越来越小。这是一个循环过程,当损失值达到一个阀值或循环次数到达指定次数,循环结束。接下来利用PyTorch的nn工具箱,构建一个神经网络实例。nn中对这些组件都有现成包或类,可以直接使用,非常方便。

——————————实现神经网络实例

构建网络层可以基于Module类,或函数(nn.functional)。

nn.Module中的大多数层(Layer)在functional中都有与之对应的函数。

nn.functional中函数与nn.Module中的Layer的主要区别是后者继承Module类,会自动提取可学习的参数。

而nn.functional更像是纯函数。

两者功能相同,且性能也没有很大区别,那么如何选择呢?像卷积层、全连接层、Dropout层等因含有可学习参数,一般使用nn.Module,而激活函数、池化层不含可学习参数,可以使用nn.functional中对应的函数。

下面通过实例来说明如何使用nn构建一个网络模型。

这节将利用神经网络完成对手写数字进行识别的实例,来说明如何借助nn工具箱来实现一个神经网络,并对神经网络有个直观了解。在这个基础上,后续我们将对nn的各模块进行详细介绍。实例环境使用PyTorch1.0+,GPU或CPU,源数据集为MNIST。

主要步骤:

1)利用PyTorch内置函数mnist下载数据。

2)利用torchvision对数据进行预处理,调用torch.utils建立一个数据迭代器。

3)可视化源数据。

4)利用nn工具箱构建神经网络模型。

5)实例化模型,并定义损失函数及优化器。

6)训练模型。

7)可视化结果。

import numpy as np
import torchfrom torchvision.datasets import mnist#导入预处理模块
import torchvision.transforms as transforms
from torch.utils.data import DataLoader#导入nn及优化器
import torch.nn.functional as F
import torch.optim as optim
from torch import nn

接下来,定义一些超参数

train_batch_size=64
test_batch_size=128
learning_rate=0.01
num_epoches=20
lr=0.01
momentum=0.5

下载数据并对数据进行预处理

#定义预处理函数,这些预处理依次放在Compose函数中。
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize([0.5], [0.5])])
#下载数据,并对数据进行预处理
train_dataset = mnist.MNIST('./data', train=True, transform=transform, download=True)
test_dataset = mnist.MNIST('./data', train=False, transform=transform)#dataloader是一个可迭代对象,可以使用迭代器一样使用。
train_loader = DataLoader(train_dataset, batch_size=train_batch_size, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=test_batch_size, shuffle=False)
  • transforms.Compose:

    • Compose 是 PyTorch 中的一个工具,用于将多个预处理操作组合在一起,依次执行。
  • transforms.ToTensor():

    • 将 PIL 图像或 NumPy 数组转换为 PyTorch 张量(Tensor)。
    • 同时会将图像的像素值从 [0, 255] 转换到 [0, 1] 的范围。
  • transforms.Normalize([0.5], [0.5]):

    • 对张量进行归一化处理。
    • 归一化的公式是:output = (input - mean) / std
    • 这里的参数 [0.5] 表示均值(mean),[0.5] 表示标准差(std)。
    • 因此,归一化后数据的范围会从 [0, 1] 变为 [-1, 1]
    • DataLoader 是 PyTorch 提供的一个工具,用于将数据集分批加载,并支持多线程、打乱顺序等功能。
  • 参数解释:
    • train_dataset 和 test_dataset: 分别指定训练集和测试集。
    • batch_size: 每次加载的数据批量大小。train_batch_size 和 test_batch_size 应该在代码其他地方定义。
    • shuffle=True: 是否在每个 epoch 开始时打乱数据顺序。通常在训练集上设置为 True,以增加模型的泛化能力。
    • shuffle=False: 测试集一般不需要打乱顺序。

——————————————可视化源数据

import matplotlib.pyplot as pltexamples=enumerate(test_loader)
batch_idx,(example_data,example_targets)=next(examples)fig=plt.figure()
for i in range(6):plt.subplot(2,3,i+1)plt.tight_layout()plt.imshow(example_data[i][0],cmap="gray",interpolation='none')plt.title("Ground Truth:{}".format(example_targets[i]))plt.xticks([])plt.yticks([])

_______________________构建模型

数据预处理结束后,开始构建模型

1)构建网络的类Net

class Net(nn.Module):"""使用sequential构建网络,Sequential()函数的功能是将网络的层组合到一起"""def __init__(self, in_dim, n_hidden_1, n_hidden_2, out_dim):super(Net, self).__init__()self.layer1 = nn.Sequential(nn.Linear(in_dim,
n_hidden_1),nn.BatchNorm1d(n_hidden_1))self.layer2 = nn.Sequential(nn.Linear(n_hidden_1, n_hidden_2),nn.BatchNorm1d (n_hidden_2))self.layer3 = nn.Sequential(nn.Linear(n_hidden_2, out_dim))def forward(self, x):x = F.relu(self.layer1(x))x = F.relu(self.layer2(x))x = self.layer3(x)return x

2)创造实例

#检测是否有可用的GPU,有则使用,否则使用CPU
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
#实例化网络
model = Net(28 * 28, 300, 100, 10)
model.to(device)# 定义损失函数criterion和优化器optimizer
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=lr, momentum=momentum)

以下内容为大语言模型生成:

这段代码实现了一个使用nn.Sequential构建的三层全连接神经网络,包含批归一化和ReLU激活函数。以下是对代码的分析及优化建议:


代码结构分析

  1. 网络定义

    • Layer1 :线性层(in_dimn_hidden_1) + 批归一化。
    • Layer2 :线性层(n_hidden_1n_hidden_2) + 批归一化。
    • Layer3 :线性层(n_hidden_2out_dim),无批归一化和激活函数。
  2. 前向传播

    • 前两层使用ReLU激活,最后一层输出原始 logits(适用于分类任务结合CrossEntropyLoss或回归任务)。

————————训练模型

这里使用for循环进行迭代。其中包括对训练数据的训练模型,然后用测试数据的验证模型。

1.训练模型

import torch
import torch.nn as nn
from torch.utils.data import DataLoader
from torchvision import transforms
from tqdm import tqdm# 假设已定义模型、数据集、损失函数和优化器
# model = Net(...)
# train_dataset = ...
# test_dataset = ...# 数据预处理(展平)
class FlattenTransform:def __call__(self, img):return img.view(-1)transform = transforms.Compose([transforms.ToTensor(),FlattenTransform()
])train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=64)# 初始化
losses = []
acces = []
eval_losses = []
eval_acces = []for epoch in range(num_epoches):# 动态调整学习率if epoch > 0 and epoch % 5 == 0:for param_group in optimizer.param_groups:new_lr = max(param_group['lr'] * 0.1, 1e-6)param_group['lr'] = new_lrprint(f"Learning rate updated to {new_lr}")# 训练阶段model.train()train_loss = 0train_correct = 0train_total = 0for img, label in tqdm(train_loader, desc=f"Epoch {epoch+1} Training"):img, label = img.to(device), label.to(device)# 前向传播output = model(img)loss = criterion(output, label)# 反向传播optimizer.zero_grad()loss.backward()optimizer.step()# 记录指标train_loss += loss.item()_, pred = output.max(1)train_correct += (pred == label).sum().item()train_total += label.size(0)# 计算平均指标avg_train_loss = train_loss / len(train_loader)avg_train_acc = train_correct / train_totallosses.append(avg_train_loss)acces.append(avg_train_acc)# 测试阶段model.eval()eval_loss, eval_acc = calculate_metrics(test_loader, model, criterion, device)eval_losses.append(eval_loss)eval_acces.append(eval_acc)# 打印日志print(f'Epoch {epoch+1}/{num_epoches}: 'f'Train Loss: {avg_train_loss:.4f}, Train Acc: {avg_train_acc:.4f}, 'f'Test Loss: {eval_loss:.4f}, Test Acc: {eval_acc:.4f}')

以下内容由大语言模型生成

为什么需要 model.eval()

在神经网络中,某些层(如 BatchNormDropout)在训练(training)和推理(evaluation)阶段的行为不同:

  1. BatchNorm 层

    • 训练阶段 :使用当前 batch 的均值和方差进行标准化,并更新运行统计量(running mean/variance)。
    • 推理阶段 :使用训练阶段累积的运行统计量,而非当前 batch 的统计量。
    • 若不调用 model.eval(),推理时会继续更新统计量,导致结果不稳定。
  2. Dropout 层

    • 训练阶段 :随机丢弃部分神经元,防止过拟合。
    • 推理阶段 :关闭 Dropout,使用所有神经元的输出(权重按概率缩放)。
    • 若不调用 model.eval(),推理时会继续随机丢弃神经元,导致结果随机。

功能详解

调用 model.eval() 后:

  1. 关闭训练相关行为
    • BatchNorm 层停止计算均值/方差,使用累积的统计量。
    • Dropout 层停止随机丢弃神经元。
  2. 不影响梯度计算
    • model.eval() 仅改变层的行为,不涉及梯度计算。如果需要禁用梯度,需配合 torch.no_grad()

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

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

相关文章

模拟调制技术详解

内容摘要 本文系统讲解模拟调制技术原理及Matlab实现,涵盖幅度调制的四种主要类型:双边带抑制载波调幅(DSB-SC)、含离散大载波调幅(AM)、单边带调幅(SSB)和残留边带调幅(…

aws(学习笔记第三十一课) aws cdk深入学习(batch-arm64-instance-type)

aws(学习笔记第三十一课) aws cdk深入学习 学习内容: 深入练习aws cdk下部署batch-arm64-instance-type 1. 深入练习aws cdk下部署batch-arm64-instance-type 代码链接 代码链接 代码链接 -> batch-arm64-instance-type之前代码学习 之前学习代码链接 -> aw…

读书报告」网络安全防御实战--蓝军武器库

一眨眼,20天过去了,刷完了这本书「网络安全防御实战--蓝军武器库」,回味无穷,整理概览如下,可共同交流读书心得。在阅读本书的过程中,我深刻感受到网络安全防御是一个综合性、复杂性极高的领域。蓝军需要掌…

DeepLabv3+改进6:在主干网络中添加SegNext_Attention|助力涨点

🔥【DeepLabv3+改进专栏!探索语义分割新高度】 🌟 你是否在为图像分割的精度与效率发愁? 📢 本专栏重磅推出: ✅ 独家改进策略:融合注意力机制、轻量化设计与多尺度优化 ✅ 即插即用模块:ASPP+升级、解码器 PS:订阅专栏提供完整代码 目录 论文简介 步骤一 步骤二…

使用 Elastic-Agent 或 Beats 将 Journald 中的 syslog 和 auth 日志导入 Elastic Stack

作者:来自 Elastic TiagoQueiroz 我们在 Elastic 一直努力将更多 Linux 发行版添加到我们的支持矩阵中,现在 Elastic-Agent 和 Beats 已正式支持 Debian 12! 本文演示了我们正在开发的功能,以支持使用 Journald 存储系统和身份验…

3.9[A]csd

在传统CPU中心架构中,中央处理器通过内存访问外部存储器,而数据必须经过网络接口卡才能到达外部存储器。这种架构存在集中式计算、DRAM带宽和容量挑战、大量数据移动(服务器内和网络)以及固定计算导致工作负载容量增长等问题。 而…

ESP32S3读取数字麦克风INMP441的音频数据

ESP32S3 与 INMP441 麦克风模块的集成通常涉及使用 I2S 接口进行数字音频数据的传输。INMP441 是一款高性能的数字麦克风,它通过 I2S 接口输出音频数据。在 Arduino 环境中,ESP32S3 的开发通常使用 ESP-IDF(Espressif IoT Development Framew…

DeepSeek大模型 —— 全维度技术解析

DeepSeek大模型 —— 全维度技术解析 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 DeepSeek大模型 —— 全维度技术解析一、模型架构全景解析1…

[Kubernetes] 7控制平面组件

1. 调度 kube- scheduler what 负责分配调度pod到集群节点监听kube-apiserver,查询未分配node的pod根据调度策略分配这些pod(更新pod的nodename)需要考虑的因素: 公平调度,资源有效利用,QoS,affinity, an…

PyTorch系列教程:编写高效模型训练流程

当使用PyTorch开发机器学习模型时,建立一个有效的训练循环是至关重要的。这个过程包括组织和执行对数据、参数和计算资源的操作序列。让我们深入了解关键组件,并演示如何构建一个精细的训练循环流程,有效地处理数据处理,向前和向后…

LeetCode Hot100刷题——反转链表(迭代+递归)

206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1]示例 2: 输入:head [1,2] 输出:[2,1]示例 3&#…

Springboot redis bitMap实现用户签到以及统计,保姆级教程

项目架构,这是作为demo展示使用: Redis config: package com.zy.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.databind.Ob…

《云原生监控体系构建实录:从Prometheus到Grafana的观测革命》

PrometheusGrafana部署配置 Prometheus安装 下载Prometheus服务端 Download | PrometheusAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.https://prometheus.io/…

SpringMvc与Struts2

一、Spring MVC 1.1 概述 Spring MVC 是 Spring 框架的一部分,是一个基于 MVC 设计模式的轻量级 Web 框架。它提供了灵活的配置和强大的扩展能力,适合构建复杂的 Web 应用程序。 1.2 特点 轻量级:与 Spring 框架无缝集成,依赖…

数据类设计_图片类设计之1_矩阵类设计(前端架构基础)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 图形在底层是怎么表示的,用C来表示 认识图片 图片是个风景,动物,还是其他内容,人是可以看出来的.那么计算机是怎么看懂的呢?在有自主意识的人工智能被设计出来…

开发者社区测试报告(功能测试+性能测试)

功能测试 测试相关用例 开发者社区功能背景 在当今数字化时代,编程已经成为一项核心技能,越来越多的人开始学习编程,以适应快速变化的科技 环境。基于这一需求,我设计开发了一个类似博客的论坛系统,专注于方便程序员…

EasyRTC嵌入式音视频通话SDK:基于ICE与STUN/TURN的实时音视频通信解决方案

在当今数字化时代,实时音视频通信技术已成为人们生活和工作中不可或缺的一部分。无论是家庭中的远程看护、办公场景中的远程协作,还是工业领域的远程巡检和智能设备的互联互通,高效、稳定的通信技术都是实现这些功能的核心。 EasyRTC嵌入式音…

【OneAPI】网页截图API-V2

API简介 生成指定URL的网页截图或缩略图。 旧版本请参考:网页截图 V2版本新增全屏截图、带壳截图等功能,并修复了一些已知问题。 全屏截图: 支持全屏截图,通过设置fullscreentrue来支持全屏截图。全屏模式下,系统…

记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)

文章目录 记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)一、微信小程序注册摘要1.1 注册流程要点 二、小程序发布流程三、下载工具 记录小白使用 Cursor 开发第一个微信小程序&#xff08…

六轴传感器ICM-20608

ICM-20608-G是一个6轴传感器芯片,由3轴陀螺仪和3轴加速度计组成。陀螺仪可编程的满量程有:250,500,1000和2000度/秒。加速度计可编程的满量程有:2g,4g,8g和16g。学习Linux之SPI之前,…