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

Day39 PythonStudy

@浙大疏锦行

import torch torch.cuda 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.cuda print(f"CUDA版本: {cuda_version}") else: print("CUDA不可用。")
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split import numpy as np 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) print(X_train.shape) print(y_train.shape) print(X_test.shape) print(y_test.shape)

(120, 4)
(120,)
(30, 4)
(30,)

# 归一化数据,神经网络对于输入数据的尺寸敏感,归一化是最常见的处理方式 from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test) # 将数据转换为 PyTorch 张量,因为 PyTorch 使用张量进行训练 # y_train和y_test是整数,所以需要转化为long类型,如果是float32,会输出1.0 0.0 X_train = torch.FloatTensor(X_train) y_train = torch.LongTensor(y_train) X_test = torch.FloatTensor(X_test) y_test = torch.LongTensor(y_test) import torch import torch.nn as nn import torch.optim as optim 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 #模型实例化 model = MLP() # 分类问题使用交叉熵损失函数 criterion = nn.CrossEntropyLoss() # 使用随机梯度下降优化器 optimizer = optim.SGD(model.parameters(), lr=0.01) # 训练 num_epochs = 10 losses = [] for epoch in range(num_epochs): #前向传播 outputs = model.forward(X_train) loss = criterion(outputs,y_train) #反向传播 optimizer.zero_grad() #梯度清零 loss.backward()#反向传播计算梯度 optimizer.step()#更新参数 #记录损失 losses.append(loss.item()) #打印训练信息 print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')

Epoch [1/10], Loss: 1.1156
Epoch [2/10], Loss: 1.1153
Epoch [3/10], Loss: 1.1150
Epoch [4/10], Loss: 1.1147
Epoch [5/10], Loss: 1.1144
Epoch [6/10], Loss: 1.1141
Epoch [7/10], Loss: 1.1138
Epoch [8/10], Loss: 1.1135
Epoch [9/10], Loss: 1.1132
Epoch [10/10], Loss: 1.1130

import matplotlib.pyplot as plt plt.plot(range(num_epochs),losses) plt.xlabel('Epoch') plt.ylabel('Loss') plt.title('Training Loss over Epochs') plt.show()

http://www.cnnetsun.cn/news/87743.html

相关文章:

  • 告别深夜批改:用Qwen3-VL大模型打造会“理解”的作文阅卷助手
  • LobeChat语音输入功能实测:让AI对话更自然流畅
  • 基于PaddlePaddle的视觉模型训练实战:从Docker安装到GPU算力调用
  • LobeChat能否实现多轮对话优化?上下文理解增强策略
  • 如何在Windows和Linux上完成TensorRT安装包的部署
  • Dify在边缘计算场景下部署的可行性评估
  • LobeChat能否对接Airtable?轻量级数据库联动方案
  • LobeChat能否实现AI故事续写?创意写作激发灵感
  • AI知识科普丨什么是 ModelOps?
  • Windows 10下Anaconda安装OpenCV指南
  • LangChain与AutoGPT核心差异与应用场景解析
  • 文件上传靶场的3种白名单,3种黑名单,以及3种针对文件内容的修改。特性靶场、get,post传参方式区别(抓包看看),正则匹配,以及高亮函数作用
  • ENSP下载官网打不开?这份备用清单请收好
  • 解决langchain-chatchat因缺少__init__.py导致的模块调用错误
  • 15秒写歌?AI音乐模型ACE-Step实测体验
  • 谁还能不知道计算机组成结构与缓存
  • day41 早停策略和模型保存
  • LobeChat国际化支持如何?中文输入输出体验实测
  • LobeChat支持GraphQL查询吗?前后端通信协议解析
  • Qwen3-8B模型镜像下载与部署指南
  • Qwen3-VL-8B-Instruct重塑多模态AI新纪元
  • PaddlePaddle镜像加速指南:如何通过清华源快速下载并部署GPU环境
  • Dify变量注入实现上下文感知的AI问答
  • Qwen-Image-Edit-2509:用语言编辑图像的AI神器
  • 微爱帮监狱写信寄信小程序阿里云百炼Paraformer-v2方言语音识别集成技术文档,服刑人员家属写信更方便
  • M1 Mac使用Miniconda安装Python3.8与TensorFlow2.5/PyTorch1.8
  • PaddleOCR多语言识别配置:使用markdown编写结构化训练说明文档
  • c++14 四种互斥锁
  • LangFlow中Agent决策链的可视化呈现方式
  • Qwen3-32B大模型调用与鉴权接口详解