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

厦门做网站哪家好seo优化与推广招聘

厦门做网站哪家好,seo优化与推广招聘,七牛云存储可以做网站,网页设计作品点评1. 使用 ImageFolder 加载按文件夹分类的数据集 适用于数据集按 “类别 / 图像” 的结构组织(如 CIFAR-2、Caltech101 等)。 目录结构要求: plaintext dataset/ ├── train/ │ ├── class1/ │ │ ├── img1.jpg │ │ └── ... │ └── class2/ │…

1. 使用 ImageFolder 加载按文件夹分类的数据集

适用于数据集按 “类别 / 图像” 的结构组织(如 CIFAR-2、Caltech101 等)。

目录结构要求

plaintext

dataset/
├── train/
│   ├── class1/
│   │   ├── img1.jpg
│   │   └── ...
│   └── class2/
│       ├── img2.jpg
│       └── ...
└── test/├── class1/└── class2/

代码示例

from torchvision.datasets import ImageFolder
from torchvision.transforms import Compose, Resize, ToTensor, Normalize
from torch.utils.data import DataLoader# 定义数据预处理
transform = Compose([Resize((224, 224)),  # 调整图像大小为224×224ToTensor(),          # 转换为Tensor并归一化到[0,1]Normalize(           # 标准化(使用ImageNet的均值和标准差)mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225])
])# 加载数据集
train_dataset = ImageFolder(root='./dataset/train',transform=transform
)test_dataset = ImageFolder(root='./dataset/test',transform=transform
)# 创建数据加载器
train_loader = DataLoader(train_dataset,batch_size=32,shuffle=True,num_workers=4
)test_loader = DataLoader(test_dataset,batch_size=32,shuffle=False,num_workers=4
)# 查看数据集信息
print(f"训练集大小: {len(train_dataset)}")
print(f"类别映射: {train_dataset.class_to_idx}")# 示例:获取一个批次的数据
images, labels = next(iter(train_loader))
print(f"图像形状: {images.shape}")  # 输出: [32, 3, 224, 224]
print(f"标签: {labels}")

完整代码:

import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.utils.data import DataLoader
import time
import os
from torchvision.datasets import ImageFolder
from torchvision.transforms import Compose, Resize, ToTensor, Normalize# 解决Windows多进程问题
if __name__ == '__main__':import torch.multiprocessing as mpmp.set_start_method('spawn', force=True)# 定义数据预处理
transform = Compose([Resize((32, 32)),  # 调整为原始CIFAR尺寸,避免计算量过大ToTensor(),Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225])
])# 加载本地2分类数据集
train_dataset = ImageFolder(root='D:\\BaiduNetdiskDownload\\cifar2_datasets\\train',transform=transform
)
test_dataset = ImageFolder(root='D:\\BaiduNetdiskDownload\\cifar2_datasets\\test',transform=transform
)# 创建数据加载器
train_loader = DataLoader(train_dataset,batch_size=100,shuffle=True,num_workers=4,pin_memory=True
)
test_loader = DataLoader(test_dataset,batch_size=100,shuffle=False,num_workers=4,pin_memory=True
)# 查看数据集信息
def look_data():print(f"训练集大小: {len(train_dataset)}")print(f"类别映射: {train_dataset.class_to_idx}")print(f"测试集大小: {len(test_dataset)}")print(f"类别映射: {test_dataset.class_to_idx}")# 验证数据加载images, labels = next(iter(train_loader))print(f"图像形状: {images.shape}")print(f"标签: {labels}")# 定义2分类模型
class ImageClassification(nn.Module):def __init__(self):super(ImageClassification, self).__init__()# 卷积池化层self.conv1 = nn.Conv2d(3, 6, kernel_size=3, stride=1, padding=1)self.pool1 = nn.MaxPool2d(kernel_size=2, stride=2)self.conv2 = nn.Conv2d(6, 16, kernel_size=3, stride=1, padding=1)self.pool2 = nn.MaxPool2d(kernel_size=2, stride=2)# 计算全连接层输入维度(根据图像尺寸32x32计算)# 32x32 -> 卷积1(3x3,p=1) -> 32x32 -> 池化1 -> 16x16# 卷积2(3x3,p=1) -> 16x16 -> 池化2 -> 8x8# 8x8x16 = 1024self.linear1 = nn.Linear(1024, 120)self.linear2 = nn.Linear(120, 84)self.out = nn.Linear(84, 2)  # 输出层为2分类def forward(self, x):x = self.pool1(F.relu(self.conv1(x)))x = self.pool2(F.relu(self.conv2(x)))x = x.view(x.size(0), -1)x = F.relu(self.linear1(x))x = F.relu(self.linear2(x))return self.out(x)# 训练函数(修改为使用本地数据集)
def train():print("开始训练2分类模型...")model = ImageClassification()criterion = nn.CrossEntropyLoss()optimizer = optim.Adam(model.parameters(), lr=1e-3)epochs = 10# 创建保存模型的目录if not os.path.exists('model'):os.makedirs('model')for epoch_idx in range(epochs):model.train()  # 设置为训练模式start = time.time()total_loss = 0.0correct = 0total_samples = 0for images, labels in train_loader:# 前向传播outputs = model(images)loss = criterion(outputs, labels)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()# 统计total_loss += loss.item() * len(labels)correct += (torch.argmax(outputs, dim=1) == labels).sum().item()total_samples += len(labels)# 打印训练进度epoch_loss = total_loss / total_samplesepoch_acc = correct / total_samplesprint(f'epoch: {epoch_idx + 1}/{epochs}  loss: {epoch_loss:.4f}  acc: {epoch_acc:.4f}  time: {time.time() - start:.2f}s')# 保存模型torch.save(model.state_dict(), 'model/cifar2_classification.pth')print("模型保存至: model/cifar2_classification.pth")# 测试函数
def test():print("开始测试模型...")model = ImageClassification()# 加载模型权重if os.path.exists('model/cifar2_classification.pth'):model.load_state_dict(torch.load('model/cifar2_classification.pth'))else:print("错误:未找到模型文件,请先训练模型")returnmodel.eval()  # 设置为评估模式correct = 0total_samples = 0with torch.no_grad():  # 不计算梯度,节省内存for images, labels in test_loader:outputs = model(images)correct += (torch.argmax(outputs, dim=1) == labels).sum().item()total_samples += len(labels)# 计算准确率test_acc = correct / total_samplesprint(f"测试集准确率: {test_acc:.4f}")# # 计算混淆矩阵(可选)# if total_samples > 0:#     from sklearn.metrics import confusion_matrix#     import numpy as np##     all_preds = []#     all_labels = []#     for images, labels in test_loader:#         outputs = model(images)#         all_preds.extend(torch.argmax(outputs, dim=1).cpu().numpy())#         all_labels.extend(labels.cpu().numpy())##     cm = confusion_matrix(all_labels, all_preds)#     print("混淆矩阵:")#     print(cm)#     class_names = list(train_dataset.class_to_idx.keys())#     if len(class_names) == 2:#         print(f"类别 {class_names[0]} 预测为: {class_names[0]} {cm[0, 0]} 次, {class_names[1]} {cm[0, 1]} 次")#         print(f"类别 {class_names[1]} 预测为: {class_names[0]} {cm[1, 0]} 次, {class_names[1]} {cm[1, 1]} 次")if __name__ == '__main__':# 查看数据look_data()# 训练模型train()# 测试模型test()

题目一:使用numpy搭建神经网络并完成图像分类任务

题目完成要求:

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

相关文章:

  • 高唐做网站建设公司windows优化大师官网
  • 在哪个网站做简历比较好网站seo案例
  • 站内优化怎么做什么是市场营销
  • 做翻译 网站吗培训网站搭建
  • 网站模板素材怎么用深圳今日重大新闻
  • 淮安做网站建设的网络公司网络营销渠道策略有哪些
  • 建筑人才网助理工程师站长工具seo综合查询论坛
  • 网站做成app客户端网上推广赚钱项目
  • 网站做代码图像显示不出来青岛谷歌优化公司
  • 西安官网seo昆明网站seo公司
  • 深圳网站建设在哪里找网络推广计划书
  • => wordpress 翻译 不显示赣州seo唐三
  • 网站做板块地图的办法网站页面禁止访问
  • 电子 东莞网站建设seo优化的主要任务
  • 把网站做成静态页面黄冈网站推广软件视频下载
  • 风中有朵雨做的云电影网站seo怎么优化效果更好
  • 东营做网站排名制作自己的网页
  • 东莞做网站的公司有哪些网店推广运营
  • 深圳做响应式网站百度站长工具网站
  • soho外贸网站建设企业网站推广模式
  • 政府网站建设8大要求网络营销策划模板
  • 软件开发方法有几种seo是做什么工作的
  • 济宁网站建设多少钱全网营销系统怎么样
  • 网站如何买空间手机优化软件下载
  • 温州科技网站建设简述获得友情链接的途径
  • 服装设计师必看的网站福州外包seo公司
  • 网站建设与小程序开发熊掌号黑马教育培训官网
  • 淮北建网站费用游戏推广代理加盟
  • 提供手机网站建设哪家好自媒体推广渠道有哪些
  • 微信小程序引流推广软件郑州seo排名工具