pytorch构建模型训练数据集

pytorch构建模型训练数据集

  • pytorch构建模型训练数据集
    • 1.AlexNet:
      • 1.1.导入必要的库:
      • 1.2.数据预处理和增强:
      • 1.3.加载数据集:
      • 1.4.划分测试集和训练集:
      • 1.5.创建数据加载器:
      • 1.6.加载AlexNet模型:
      • 1.7.修改模型以适应您的数据集类别数
      • 1.8.定义损失函数和优化器
      • 1.9.将模型移动到GPU(如果可用)
      • 1.10.初始化列表来存储每个epoch的损失和准确率
      • 1.11.训练模型
      • 1.12.绘制损失图表和准确率图标:
    • 2.LeNet-5:
      • 2.1.导入必要的库:
      • 2.2.数据预处理和增强:
      • 2.3.加载数据集:
      • 2.4.划分训练集和测试集:
      • 2.5.创建数据加载器:
      • 2.6.定义LeNet-5模型结构:
      • 2.7.初始化LeNet-5模型
      • 2.8. 定义损失函数和优化器
      • 2.9.将模型移动到GPU(如果可用)
      • 2.10.初始化列表来存储每个epoch的损失和准确率
      • 2.11.训练模型
    • 3.ResNet:
      • 3.1.导入必要的库:
      • 3.2.数据预处理和增强:
      • 3.3.加载数据集:
      • 3.4.划分训练集和测试集:
      • 3.5.创建数据加载器:
      • 3.6.使用ResNet-18模型:
      • 3.7.修改全连接层以适应数据集:
      • 3.8.定义损失函数和优化器:
      • 3.9.将模型移动到GPU(如果可用):
      • 3.10.初始化列表来存储每个epoch的损失和准确率:
      • 3.11.训练模型并输出:
    • 4.VGG-16:
      • 4.1.导入必要的库:
      • 4.2.数据预处理和增强:
      • 4.3.加载数据集:
      • 4.4.划分训练集和测试集:
      • 4.5.创建数据加载器:
      • 4.6.加载VGG16模型:
      • 4.8.定义损失函数和优化器:
      • 4.9.将模型移动到GPU(如果可用):
      • 4.10.初始化列表来存储每个epoch的损失和准确率:
      • 4.11.训练模型与输出:
    • 5.VGG-19:
      • 5.1.导入必要的库:
      • 5.2.数据预处理和增强:
      • 5.3.加载数据集:
      • 5.4.划分训练集和测试集:
      • 5.5.创建数据加载器:
      • 5.6.加载VGG19模型:
      • 5.7.修改模型以适应数据集类别数:
      • 5.8.定义损失函数和优化器:
      • 5.9.将模型移动到GPU(如果可用):
      • 5.10.初始化列表来存储每个epoch的损失和准确率:
      • 5.11.训练模型与输出:

pytorch构建模型训练数据集

1.AlexNet:

1.1.导入必要的库:

import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
from torchvision import datasets, transforms, models
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt

1.2.数据预处理和增强:

transform = transforms.Compose([transforms.Resize((227, 227)),  # AlexNet需要227x227像素的输入transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # AlexNet的标准归一化参数
])

1.3.加载数据集:

data_path = 'D:/工坊/Pytorch的框架/flower_photos'
dataset = datasets.ImageFolder(data_path, transform=transform)

1.4.划分测试集和训练集:

train_size = int(0.8 * len(dataset))
test_size = len(dataset) - train_sizetrain_dataset, test_dataset = torch.utils.data.random_split(dataset, [train_size, test_size])

1.5.创建数据加载器:

train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)

1.6.加载AlexNet模型:

model = models.alexnet(pretrained=True)

1.7.修改模型以适应您的数据集类别数

num_classes = len(dataset.classes)
model.classifier[6] = nn.Linear(model.classifier[6].in_features, num_classes)

1.8.定义损失函数和优化器

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters())

1.9.将模型移动到GPU(如果可用)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

1.10.初始化列表来存储每个epoch的损失和准确率

train_losses = []
train_accuracies = []

1.11.训练模型

num_epochs = 50
for epoch in range(num_epochs):model.train()running_loss = 0.0correct = 0total = 0for inputs, labels in train_loader:inputs, labels = inputs.to(device), labels.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()epoch_loss = running_loss / len(train_loader)epoch_accuracy = 100 * correct / totaltrain_losses.append(epoch_loss)train_accuracies.append(epoch_accuracy)
print(f'Epoch {epoch + 1}/{num_epochs}, Loss: {epoch_loss}, Accuracy: {epoch_accuracy}%')

运行结果:
在这里插入图片描述

1.12.绘制损失图表和准确率图标:

#创建图表
plt.figure(figsize=(10, 5))#绘制损失
plt.subplot(1, 2, 1)
plt.plot(range(1, len(train_losses) + 1), train_losses, 'bo-', label='Training Loss')
plt.title('Training Loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
#绘制准确率
plt.subplot(1, 2, 2)
plt.plot(range(1, len(train_accuracies) + 1), train_accuracies, 'ro-', label='Training Accuracy')
plt.title('Training Accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy (%)')
plt.legend()
#显示图表
plt.tight_layout()
plt.show()

2.LeNet-5:

2.1.导入必要的库:

import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
from torchvision import datasets, transforms, models
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt

2.2.数据预处理和增强:

#数据预处理和增强
transform = transforms.Compose([transforms.Resize((227, 227)),  # AlexNet需要227x227像素的输入transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # AlexNet的标准归一化参数
])

2.3.加载数据集:

data_path = 'D:/工坊/Pytorch的框架/flower_photos'
dataset = datasets.ImageFolder(data_path, transform=transform)

2.4.划分训练集和测试集:

train_size = int(0.8 * len(dataset))
test_size = len(dataset) - train_sizetrain_dataset, test_dataset = torch.utils.data.random_split(dataset, [train_size, test_size])

2.5.创建数据加载器:

train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)

2.6.定义LeNet-5模型结构:

  • 包含两个卷积层和三个全连接层
class LeNet5(nn.Module):def __init__(self, num_classes):super(LeNet5, self).__init__()self.conv_net = nn.Sequential(nn.Conv2d(3, 6, kernel_size=5),nn.Tanh(),nn.AvgPool2d(kernel_size=2, stride=2),nn.Conv2d(6, 16, kernel_size=5),nn.Tanh(),nn.AvgPool2d(kernel_size=2, stride=2))self.fc_net = nn.Sequential(nn.Linear(44944, 120),  # 修改这里以匹配卷积层的输出尺寸nn.Tanh(),nn.Linear(120, 84),nn.Tanh(),nn.Linear(84, num_classes))def forward(self, x):x = self.conv_net(x)x = x.view(x.size(0), -1)  # 展平多维卷积层输出x = self.fc_net(x)return x

2.7.初始化LeNet-5模型

num_classes = len(dataset.classes)
model = LeNet5(num_classes)

2.8. 定义损失函数和优化器

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters())

2.9.将模型移动到GPU(如果可用)

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

2.10.初始化列表来存储每个epoch的损失和准确率

train_losses = []
train_accuracies = []

2.11.训练模型

num_epochs = 50
for epoch in range(num_epochs):model.train()running_loss = 0.0correct = 0total = 0for inputs, labels in train_loader:inputs, labels = inputs.to(device), labels.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()epoch_loss = running_loss / len(train_loader)epoch_accuracy = 100 * correct / totaltrain_losses.append(epoch_loss)train_accuracies.append(epoch_accuracy)print(f'Epoch {epoch + 1}/{num_epochs}, Loss: {epoch_loss}, Accuracy: {epoch_accuracy}%')

3.ResNet:

3.1.导入必要的库:

import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
from torchvision import datasets, transforms, models
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt

3.2.数据预处理和增强:

#数据预处理和增强
transform = transforms.Compose([transforms.Resize((224, 224)),  # 调整图像大小为 224x224像素,符合ResNet输入transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  
#ResNet的标准化参数
])

3.3.加载数据集:

#加载数据集
data_path = 'D:/工坊/深度学习/img/weather_photos'
dataset = datasets.ImageFolder(data_path, transform=transform)

3.4.划分训练集和测试集:

#划分训练集和测试集
train_size = int(0.8 * len(dataset))
test_size = len(dataset) - train_sizetrain_dataset, test_dataset = torch.utils.data.random_split(dataset, [train_size, test_size])

3.5.创建数据加载器:

  • 为数据集提供批量加载和随机洗牌的功能。
#创建数据加载器
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)

3.6.使用ResNet-18模型:

  • models.resnet18(pretrained=True):加载预训练的ResNet-18模型,修改全连接层以适应您的数据集:替换模型的最后一层,使其输出类别数与您的数据集类别数相匹配。
#使用ResNet-18模型
model = models.resnet18(pretrained=True)

3.7.修改全连接层以适应数据集:

num_classes = len(dataset.classes)  # 假设dataset是您之前定义的ImageFolder对象
num_ftrs = model.fc.in_features
model.fc = nn.Linear(num_ftrs, num_classes)

3.8.定义损失函数和优化器:

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters())

3.9.将模型移动到GPU(如果可用):

  • 检查是否有可用的GPU,如果有,则将模型和数据移动到GPU以加速训练。
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

3.10.初始化列表来存储每个epoch的损失和准确率:

  • 用于监控训练过程中的损失和准确率。
train_losses = []
train_accuracies = []

3.11.训练模型并输出:

  • 在多个epoch上迭代训练模型,在每个epoch中,遍历训练数据集,进行前向传播、计算损失、反向传播和参数更新,计算每个epoch的总损失和准确率,并打印出来。
  • 每个epoch的损失和准确率会被打印出来,以便监控训练过程
num_epochs = 50
for epoch in range(num_epochs):model.train()running_loss = 0.0correct = 0total = 0for inputs, labels in train_loader:inputs, labels = inputs.to(device), labels.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()epoch_loss = running_loss / len(train_loader)epoch_accuracy = 100 * correct / totaltrain_losses.append(epoch_loss)train_accuracies.append(epoch_accuracy)print(f'Epoch {epoch + 1}/{num_epochs}, Loss: {epoch_loss}, Accuracy: {epoch_accuracy}%')

4.VGG-16:

4.1.导入必要的库:

  • 用于构建和训练神经网络,以及处理图像数据。
import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
from torchvision import datasets, transforms, models
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt

4.2.数据预处理和增强:

  • 使用VGG16模型的标准归一化参数。
transform = transforms.Compose([transforms.Resize((224, 224)),  # VGG16需要224x224像素的输入transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # VGG16的标准归一化参数
])

4.3.加载数据集:

  • 从指定路径加载数据集。
data_path = 'D:/工坊/Pytorch的框架/flower_photos'
dataset = datasets.ImageFolder(data_path, transform=transform)

4.4.划分训练集和测试集:

  • 将数据集随机分为训练集和测试集。
train_size = int(0.8 * len(dataset))
test_size = len(dataset) - train_sizetrain_dataset, test_dataset = torch.utils.data.random_split(dataset, [train_size, test_size])

4.5.创建数据加载器:

  • 为训练集和测试集创建数据加载器。
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)

4.6.加载VGG16模型:

  • 使用models.vgg16(pretrained=True)加载预训练的VGG16模型。
model = models.vgg16(pretrained=True)
  • 修改VGG16模型的分类器层的最后一层,使其输出类别数与您的数据集类别数相匹配。
num_classes = len(dataset.classes)
model.classifier[6] = nn.Linear(model.classifier[6].in_features, num_classes)

4.8.定义损失函数和优化器:

  • 使用交叉熵损失函数和Adam优化器。
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters())

4.9.将模型移动到GPU(如果可用):

  • 检查是否有可用的GPU,如果有,则将模型和数据移动到GPU以加速训练。
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

4.10.初始化列表来存储每个epoch的损失和准确率:

  • 用于监控训练过程中的损失和准确率。
train_losses = []
train_accuracies = []

4.11.训练模型与输出:

  • 每个epoch的损失和准确率会被打印出来,以便监控训练过程。
num_epochs = 1000
for epoch in range(num_epochs):model.train()running_loss = 0.0correct = 0total = 0for inputs, labels in train_loader:inputs, labels = inputs.to(device), labels.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()epoch_loss = running_loss / len(train_loader)epoch_accuracy = 100 * correct / totaltrain_losses.append(epoch_loss)train_accuracies.append(epoch_accuracy)print(f'Epoch {epoch + 1}/{num_epochs}, Loss: {epoch_loss}, Accuracy: {epoch_accuracy}%')

5.VGG-19:

5.1.导入必要的库:

  • 用于构建和训练神经网络,以及处理图像数据。
import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
from torchvision import datasets, transforms, models
from torch.utils.data import DataLoader
import matplotlib.pyplot as plt

5.2.数据预处理和增强:

-使用VGG19模型的标准归一化参数。

transform = transforms.Compose([transforms.Resize((224, 224)),  # VGG19需要224x224像素的输入transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])  # VGG16的标准归一化参数
])

5.3.加载数据集:

  • 从指定路径加载数据集。
data_path = 'D:/工坊/Pytorch的框架/flower_photos'
dataset = datasets.ImageFolder(data_path, transform=transform)

5.4.划分训练集和测试集:

  • 将数据集随机分为训练集和测试集。
train_size = int(0.8 * len(dataset)) test_size = len(dataset) - train_sizetrain_dataset, test_dataset = torch.utils.data.random_split(dataset, [train_size, test_size])

5.5.创建数据加载器:

  • 为训练集和测试集创建数据加载器。
train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True)test_loader = DataLoader(test_dataset, batch_size=32, shuffle=False)

5.6.加载VGG19模型:

  • 使用models.vgg19(pretrained=True)加载预训练的VGG19模型。
model = models.vgg19(pretrained=True)

5.7.修改模型以适应数据集类别数:

  • 修改VGG19模型的分类器层的最后一层,使其输出类别数与您的数据集类别数相匹配。
num_classes = len(dataset.classes)
model.classifier[6] = nn.Linear(model.classifier[6].in_features, num_classes)

5.8.定义损失函数和优化器:

使用交叉熵损失函数和Adam优化器。

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters())

5.9.将模型移动到GPU(如果可用):

  • 检查是否有可用的GPU,如果有,则将模型和数据移动到GPU以加速训练。
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)

5.10.初始化列表来存储每个epoch的损失和准确率:

  • 用于监控训练过程中的损失和准确率。
train_losses = []
train_accuracies = []

5.11.训练模型与输出:

  • 每个epoch的损失和准确率会被打印出来,以便监控训练过程。
num_epochs = 1000
for epoch in range(num_epochs):model.train()running_loss = 0.0correct = 0total = 0for inputs, labels in train_loader:inputs, labels = inputs.to(device), labels.to(device)optimizer.zero_grad()outputs = model(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()_, predicted = torch.max(outputs.data, 1)total += labels.size(0)correct += (predicted == labels).sum().item()epoch_loss = running_loss / len(train_loader)epoch_accuracy = 100 * correct / totaltrain_losses.append(epoch_loss)train_accuracies.append(epoch_accuracy)print(f'Epoch {epoch + 1}/{num_epochs}, Loss: {epoch_loss}, Accuracy: {epoch_accuracy}%')

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

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

相关文章

训练营第三十一天 | 494.目标和474.一和零动态规划:完全背包理论基础518.零钱兑换II

494.目标和 力扣题目链接(opens new window) 难度:中等 给定一个非负整数数组,a1, a2, ..., an, 和一个目标数,S。现在你有两个符号 和 -。对于数组中的任意一个整数,你都可以从 或 -中选择一个符号添加在前面。 返回可以使…

mysql当前状态分析(show status)

文章目录 查看当前线程数据查询连接情况查询缓存相关查询锁相关查询增删改查执行次数查询DDL创建相关 SHOW STATUS 是一个在 MySQL 中用来查看服务器运行状态的命令。它可以帮助你了解服务器的当前性能,包括连接数、表锁定、缓冲区使用情况等信息。 查看当前线程数据…

电机专用32位MCU PY32MD310,Arm® Cortex-M0+内核

PY32MD310是一颗专为电机控制设计的MCU,非常适合用做三相/单相 BLDC/PMSM 的主控芯片。芯片采用了高性能的 32 位 ARM Cortex-M0 内核,QFN32封装。内置最大 64 Kbytes flash 和 8 Kbytes SRAM 存储器,最高48 MHz工作频率,多达 16 …

Vue2工程化

本节目标 工程化开发项目运行流程组件化组件注册自定义创建项目 工程化开发 基于构建工具的环境开发Vue Webpack的缺点 webpack的配置并不简单基础的配置雷同各公司缺乏统一标准 Vue CLI Vue CLI是Vue官方提供的一个全局命令工具帮助我们快速创建标准化的开发环境( 集成了w…

图解通用网络IO底层原理、Socket、epoll、用户态内核态······

LInux 操作系统中断 什么是系统中断 这个没啥可说的,大家都知道; CPU 在执行任务途中接收到中断请求,需要保存现场后去处理中断请求!保存现场称为中断处理程序!处理中断请求也就是唤醒对应的任务进程来持有CPU进行需要…

YOLOv10开源,高效轻量实时端到端目标检测新标准,速度提升46%

前言 实时目标检测在自动驾驶、机器人导航、物体追踪等领域应用广泛,近年来,YOLO 系列模型凭借其高效的性能和实时性,成为了该领域的主流方法。但传统的 YOLO 模型通常采用非极大值抑制 (NMS) 进行后处理,这会增加推理延迟&#…

gulimall-search P125 springboot整合elasticsearch版本冲突

一、问题 spring-boot.version 2.2.4.RELEASE,在gulimall-search pom.xml中添加elasticsearch.version 7.4.2后,发现出现如下问题:elasticsearch版本是springboot引入的6.8.6,没有变为7.4.2。 二、原因 在gulimall-search 的pom文件中&#…

【数据结构】平衡二叉树左旋右旋与红黑树

平衡二叉树左旋右旋与红黑树 平衡二叉树 定义 平衡二叉树是二叉搜索树的一种特殊形式。二叉搜索树(Binary Search Tree,BST)是一种具有以下性质的二叉树: 对于树中的每个节点,其左子树中的所有节点都小于该节点的值…

Python - 深度学习系列38 重塑实体识别5-预测并行化改造

说明 在重塑实体识别4中梳理了数据流,然后我发现pipeline的串行效率太低了,所以做了并行化改造。里面还是有不少坑的,记录一下。 内容 1 pipeline 官方的pipeline看起来的确是比较好用的,主要是实现了比较好的数据预处理。因为…

党史馆3d网上展馆

在数字化浪潮的推动下,华锐视点运用实时互动三维引擎技术,为用户带来前所未有的场景搭建体验。那就是领先于同行业的线上三维云展编辑平台搭建编辑器,具有零基础、低门槛、低成本等特点,让您轻松在数字化世界中搭建真实世界的仿真…

【SpringBoot】SpringBoot整合RabbitMQ消息中间件,实现延迟队列和死信队列

📝个人主页:哈__ 期待您的关注 目录 一、🔥死信队列 RabbitMQ的工作模式 死信队列的工作模式 二、🍉RabbitMQ相关的安装 三、🍎SpringBoot引入RabbitMQ 1.引入依赖 2.创建队列和交换器 2.1 变量声明 2.2 创建…

Python实现半双工的实时通信SSE(Server-Sent Events)

Python实现半双工的实时通信SSE(Server-Sent Events) 1 简介 实现实时通信一般有WebSocket、Socket.IO和SSE(Server-Sent Events)三种方法。WebSocket和Socket.IO是全双工的实时双向通信技术,适合用于聊天和会话等&a…

SwiftUI中Mask修饰符的理解与使用

Mask是一种用于控制图形元素可见性的图形技术&#xff0c;使用给定视图的alpha通道掩码该视图。在SwiftUI中&#xff0c;它类似于创建一个只显示视图的特定部分的模板。 Mask修饰符的定义&#xff1a; func mask<Mask>(alignment: Alignment .center,ViewBuilder _ ma…

AI论文速读 | 2024[KDD]GinAR—变量缺失端到端多元时序预测

题目&#xff1a;GinAR: An End-To-End Multivariate Time Series Forecasting Model Suitable for Variable Missing 作者&#xff1a;Chengqing Yu&#xff08;余澄庆&#xff09;, Fei Wang&#xff08;王飞&#xff09;, Zezhi Shao&#xff08;邵泽志&#xff09;, Tangw…

XML解析库tinyxml2库使用详解

XML语法规则介绍及总结-CSDN博客 TinyXML-2 是一个简单轻量级的 C XML 解析库,它提供了一种快速、高效地解析 XML 文档的方式。 1. 下载地址 Gitee 极速下载/tinyxml2 2. 基本用法 下面将详细介绍 TinyXML-2 的主要使用方法: 2.1. 引入头文件和命名空间 #i…

Docker 国内镜像源更换

实现 替换docker 镜像源 前提要求 安装 docker docker-compose 参考创建一键更换docker国内源 vim /docker_daemon.sh #!/bin/bash # -*- coding: utf-8 -*- # Author: make.han # Email: CIASM@CIASM # Date: 2024/06/07 # docker daemon.jsondaemon_json_file="/et…

js 选择一个音频文件,绘制音频的波形,从右向左逐渐前进。

选择一个音频文件&#xff0c;绘制波形&#xff0c;从右向左逐渐前进。 完整代码&#xff1a; <template><div><input type"file" change"handleFileChange" accept"audio/*" /><button click"stopPlayback" :…

大模型微调工具LLaMA-Factory docker安装、大模型lora微调训练

参考: https://github.com/hiyouga/LLaMA-Factory 报错解决: 1)Docker 构建报错 RuntimeError: can’t start new thread: https://github.com/hiyouga/LLaMA-Factory/issues/3859 修改后的Dockerfile: FROM nvcr.io/nvidia/pytorch:24.01-py3WORKDIR /appCOPY require…

el-input中change事件造成的坑

el-input中change事件造成的坑 一、change事件定义二、如果仅回车时候触发 一、change事件定义 仅在输入框失去焦点或用户按下回车时触发 二、如果仅回车时候触发 <el-inputv-model.trim"questionInput"placeholder"请输入你的问题&#xff0c;按回车发送&…

NDIS Filter开发-PNP响应和安装

NDIS filter驱动可能是最容易生成的驱动之一&#xff0c;如果你安装了VS 2015 WDK之后&#xff0c;你可以直接生成一个能运行的Filter驱动&#xff0c;它一般是ndislwf。 和大部分硬件不同&#xff0c;NDIS Filter驱动介于软件和硬件抽象层之上&#xff0c;它和硬件相关&…