当前位置: 首页 > wzjs >正文

网站怎么做公司百度网页版下载安装

网站怎么做公司,百度网页版下载安装,河北网站备案系统,微信开发公司怎么样GPU训练及类的call方法 CPU性能的查看:看架构代际、核心数、线程数GPU性能的查看:看显存、看级别、看架构代际GPU训练的方法:数据和模型移动到GPU device上类的call方法:为什么定义前向传播时可以直接写作self.fc1(x) CPU性能的查…

GPU训练及类的call方法

  1. CPU性能的查看:看架构代际、核心数、线程数
  2. GPU性能的查看:看显存、看级别、看架构代际
  3. GPU训练的方法:数据和模型移动到GPU device上
  4. 类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)

CPU性能的查看

import wmic = wmi.WMI()
processors = c.Win32_Processor()for processor in processors:print(f"CPU 型号: {processor.Name}")print(f"核心数: {processor.NumberOfCores}")print(f"线程数: {processor.NumberOfLogicalProcessors}")
CPU 型号: 13th Gen Intel(R) Core(TM) i9-13980HX
核心数: 24
线程数: 32

GPU性能查看

import torch# 检查CUDA是否可用
if torch.cuda.is_available():print("CUDA可用!")# 获取可用的CUDA设备数量device_count = torch.cuda.device_count()print(f"可用的CUDA设备数量: {device_count}")# 获取当前使用的CUDA设备索引current_device = torch.cuda.current_device()print(f"当前使用的CUDA设备索引: {current_device}")# 获取当前CUDA设备的名称device_name = torch.cuda.get_device_name(current_device)print(f"当前CUDA设备的名称: {device_name}")# 获取CUDA版本cuda_version = torch.version.cudaprint(f"CUDA版本: {cuda_version}")# 查看cuDNN版本(如果可用)print("cuDNN版本:", torch.backends.cudnn.version())else:print("CUDA不可用。")
CUDA可用!
可用的CUDA设备数量: 1
当前使用的CUDA设备索引: 0
当前CUDA设备的名称: NVIDIA GeForce RTX 4060 Laptop GPU
CUDA版本: 12.1
cuDNN版本: 8907

GPU训练

import torch
import torch.nn as nn
import torch.optim as optim
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
import time
import matplotlib.pyplot as plt# 设置GPU设备
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(f"使用设备: {device}")# 加载鸢尾花数据集
iris = load_iris()
X = iris.data  # 特征数据
y = iris.target  # 标签数据# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 归一化数据
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)# 将数据转换为PyTorch张量并移至GPU
X_train = torch.FloatTensor(X_train).to(device)
y_train = torch.LongTensor(y_train).to(device)
X_test = torch.FloatTensor(X_test).to(device)
y_test = torch.LongTensor(y_test).to(device)class MLP(nn.Module):def __init__(self):super(MLP, self).__init__()self.fc1 = nn.Linear(4, 10)  # 输入层到隐藏层self.relu = nn.ReLU()self.fc2 = nn.Linear(10, 3)  # 隐藏层到输出层def forward(self, x):out = self.fc1(x)out = self.relu(out)out = self.fc2(out)return out# 实例化模型并移至GPU
model = MLP().to(device)# 分类问题使用交叉熵损失函数
criterion = nn.CrossEntropyLoss()# 使用随机梯度下降优化器
optimizer = optim.SGD(model.parameters(), lr=0.01)# 训练模型
num_epochs = 20000  # 训练的轮数# 用于存储每100个epoch的损失值和对应的epoch数
losses = []start_time = time.time()  # 记录开始时间for epoch in range(num_epochs):# 前向传播outputs = model(X_train)  # 隐式调用forward函数loss = criterion(outputs, y_train)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()# 记录损失值if (epoch + 1) % 200 == 0:losses.append(loss.item()) # item()方法返回一个Python数值,loss是一个标量张量print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')# 打印训练信息if (epoch + 1) % 100 == 0: # range是从0开始,所以epoch+1是从当前epoch开始,每100个epoch打印一次print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')time_all = time.time() - start_time  # 计算训练时间
print(f'Training time: {time_all:.2f} seconds')# 可视化损失曲线
plt.plot(range(len(losses)), losses)
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Training Loss over Epochs')
plt.show()
Training time: 13.35 seconds

__call__方法

# 带参数的call方法
class Adder:def __call__(self, a, b):print("唱跳篮球rap")return a + badder = Adder()
print(adder(3, 5))  # 输出: 8

这两种写法是等价的,因为 model(X_train) 会自动调用 model.__call__(X_train) ,而在 nn.Module 中, __call__ 方法会调用 forward 方法。这就是为什么我们可以直接使用 model(X_train) 而不是显式地调用 forward 方法。

这种设计模式让PyTorch的代码更加优雅和直观,使得神经网络的构建和训练更加自然。

作业

GPU的计算并不会完全停止,它会继续处理下一批数据的计算。当GPU在计算时,CPU可以同时处理其他任务,现代系统的任务调度器会尽量减少CPU和GPU之间的等待时间。记录次数和剩余时长之间并没有明显的线性关系。这种非线性关系实际上反映了现代计算架构的高效性。

@浙大疏锦行

http://www.dtcms.com/wzjs/378243.html

相关文章:

  • 东莞厚街家具批发市场搜索引擎优化涉及的内容
  • 粉丝网站制作seoul是什么国家
  • 网站开发的心得体会seo软件优化
  • 下载jsp网站开发用啥工具企业网络策划
  • 设计图网址2020站群seo系统
  • 免费做电脑网站吗seo算法是什么
  • oa系统网站建设方案2021最新免费的推广引流软件
  • 菜鸟教程网站首页制作东莞网络公司网络推广
  • 谁做视频网站品牌策略怎么写
  • 苏州网站建设 凡仕臣网络北京百度seo价格
  • 外贸独立网站搭建百度搜索引擎技巧
  • 做网站公司融资多少长春今日头条新闻
  • 网站搭建完手机访问长沙本地推广
  • 阿里巴巴做短视频网站缅甸在线今日新闻
  • 做网站要什么语言网站开发需要哪些技术
  • 如何对网站的图片做cdn贵阳网络推广排名
  • 做教案比较好的网站sem竞价推广是什么
  • 视频类网站如何做缓存金华网站建设
  • 计算机一级考试网站怎么做如何屏蔽百度广告推广
  • 织梦做第一个网站2022年度最火关键词
  • 好的网站建设公司排名最好看免费观看高清视频了
  • 织梦网站地图制作网站排名优化服务公司
  • 做亚马逊常用的网站谷歌平台推广外贸
  • 网站建设需要什么硬件和软件网店代运营正规公司
  • 巫山网站建设无线新闻台直播app下载
  • 网页制作基础教程慕课版电子版开鲁网站seo站长工具
  • 如何做照片ppt模板下载网站公司推广咨询
  • 做网站需要学什么语言网站百度收录查询
  • 唐河企业网站制作怎么样作品提示优化要删吗
  • 个人做电商网站icp广州现在有什么病毒感染