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

什么网站可以做产品入驻论文网站开发

什么网站可以做产品入驻,论文网站开发,甘肃省兰州市新闻,wordpress 线条不显示代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 从零开始构建你的第一个神经网络 在本教程中#xff0c;我们将使用PyTorch框架从零开始构建一个简单的卷积神经网络#xff08;CNN#xff09;#xff0c;用于图片二分类任务。CNN 是一种深度学习模型#…代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 从零开始构建你的第一个神经网络 在本教程中我们将使用PyTorch框架从零开始构建一个简单的卷积神经网络CNN用于图片二分类任务。CNN 是一种深度学习模型特别适用于图像数据。本文将详细介绍如何一步步搭建一个包含4-5层的CNN并训练它来分类图像。 1.准备工作 在开始之前需要一些必要的库本教程中使用的库的版本如下 packageversionpython3.8.0torch1.13.0scikit-learn1.1.3numpy1.20.1matplotlib3.3.4 本软件包均是在anaconda虚拟环境中安装的。如果还没该虚拟环境还需要创建一下才可以。准备工作完成后就可以开始正式的神经网络搭建了。 2.数据集准备 在本教程中我们使用1元与100元人民币两个类别。其数据集存放格式如下图所示 一共分为三个部分train、test和val即训练验证和测试。“1”和“100”文件夹下面就是数据集图片。下面就来对数据集进行处理 首先导入必要的包和进行数据的预处理 #导入包 import torch import torchvision import torchvision.transforms as transforms #数据预处理 transform transforms.Compose([transforms.Resize((64, 64)),transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) ])加载数据集 train_data_path 02-01-data-RMB_data/train # 数据集存放的相对路径 trainset datasets.ImageFolder(roottrain_data_path, transformtransform) trainloader DataLoader(trainset, batch_size4, shuffleTrue)val_data_path 02-01-data-RMB_data/val valset datasets.ImageFolder(rootval_data_path, transformtransform) valloader DataLoader(valset, batch_size4, shuffleFalse)classes trainset.classes # 获取类别名这里为“1”和“100”我们可以使用torchvision.datasets.ImageFolder来加载这些数据。ImageFolder会根据目录名自动将图像归类。 3.定义卷积神经网络结构并实例化模型 接下来我们将定义一个简单的卷积神经网络。该网络将包含两个卷积层每层后接池化层和两个全连接层。 # 定义卷积神经网络 class SimpleCNN(nn.Module):def __init__(self, num_classes):super(SimpleCNN, self).__init__()self.conv1 nn.Conv2d(3, 16, 3, padding1) #彩色图片输入通道为3RGB输出为16self.pool nn.MaxPool2d(2, 2)self.conv2 nn.Conv2d(16, 32, 3, padding1)self.fc1 nn.Linear(32 * 16 * 16, 120)self.fc2 nn.Linear(120, num_classes)def forward(self, x):x self.pool(F.relu(self.conv1(x)))x self.pool(F.relu(self.conv2(x)))x x.view(-1, 32 * 16 * 16) #展平操作成为1维x F.relu(self.fc1(x))x self.fc2(x)return x# 实例化模型 num_classes len(classes) net SimpleCNN(num_classes).to(device)上述网络结构中nn.Conv2d(3, 16, 3, padding1) 表明彩色图片输入通道为3RGB输出为16这里16可以自己定义但是要与下一卷积层的输入通道数相同。16后面的3为卷积核大小即为3*3卷积。 4.训练和验证模型 4.1.配置训练参数 在开始训练之前我们需要定义损失函数和优化器。这里我们将使用交叉熵损失函数和随机梯度下降SGD优化器。 这里不同的损失函数和不同的优化器也会影响模型最终的效果。比如可以使用Adam、AdamW等优化器。 # 定义损失函数和优化器 criterion nn.CrossEntropyLoss() optimizer optim.SGD(net.parameters(), lr0.001, momentum0.9)4.2 模型训练与验证 # 存储训练损失和验证损失 train_losses [] val_losses []# 训练模型并记录损失和准确率 for epoch in range(10):net.train()running_loss 0.0correct 0total 0for i, data in enumerate(trainloader, 0):inputs, labels data# 将输入和标签移动到GPUinputs, labels inputs.to(device), labels.to(device)optimizer.zero_grad()outputs net(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()train_loss running_loss / len(trainloader)train_accuracy 100 * correct / totaltrain_losses.append(train_loss)# 验证模型net.eval()val_loss 0.0correct 0total 0with torch.no_grad():for data in valloader:images, labels data# 将输入和标签移动到GPUinputs, labels inputs.to(device), labels.to(device)outputs net(images)loss criterion(outputs, labels)val_loss loss.item()_, predicted torch.max(outputs.data, 1)total labels.size(0)correct (predicted labels).sum().item()val_loss val_loss / len(valloader)val_accuracy 100 * correct / totalval_losses.append(val_loss)print(fEpoch [{epoch 1}/10], Train Loss: {train_loss:.4f}, Train Accuracy: {train_accuracy:.2f}%, Val Loss: {val_loss:.4f}, Val Accuracy: {val_accuracy:.2f}%)print(Finished Training) #保存模型在本地 model_save_path simple_cnn.pth torch.save(net.state_dict(), model_save_path) print(fModel saved to {model_save_path})在这里我们将训练模型10个epoch并在每个epoch结束后输出损失和准确率可以看到每一个epoch上的结果。 训练过程如下图 5.性能评估与模型测试 5.1 性能评估 绘制loss曲线 # 绘制损失曲线 plt.figure() plt.plot(train_losses, labelTrain Loss) plt.plot(val_losses, labelValidation Loss) plt.xlabel(Epoch) plt.ylabel(Loss) plt.title(Loss Curve) plt.legend() plt.show() 查看结果 绘制混淆矩阵 # 混淆矩阵 net.eval() all_preds [] all_labels [] with torch.no_grad():for data in valloader:images, labels dataoutputs net(images)_, predicted torch.max(outputs.data, 1)all_preds.extend(predicted.cpu().numpy())all_labels.extend(labels.cpu().numpy())# 生成混淆矩阵 cm confusion_matrix(all_labels, all_preds) disp ConfusionMatrixDisplay(confusion_matrixcm, display_labelsclasses)# 绘制混淆矩阵 plt.figure() disp.plot(cmapplt.cm.Blues) plt.title(Confusion Matrix) plt.show()在val文件夹中1和100的数量都是19所以做到了100%的准确率。 5.2 模型测试 在第四步中我们将训练好的模型进行了保存那么这里我们将模型加载出来对test数据集进行测试看看模型效果如何。这里我们需要加载训练好的模型进行测试。 # 加载模型权重 model_path simple_cnn.pth net.load_state_dict(torch.load(model_path))# 将模型移动到设备上 net.to(device)# 设置模型为评估模式 net.eval()# 加载测试集 test_data_path 02-01-data-RMB_data/test testset datasets.ImageFolder(roottest_data_path, transformtransform) testloader DataLoader(testset, batch_size4, shuffleFalse)# 预测并输出结果 all_preds [] all_labels [] with torch.no_grad():for data in testloader:images, labels data# 将数据移动到GPUimages, labels images.to(device), labels.to(device)outputs net(images)_, predicted torch.max(outputs.data, 1)all_preds.extend(predicted.cpu().numpy())all_labels.extend(labels.cpu().numpy())# 你可以在这里处理预测结果比如输出预测值或计算准确率 correct sum(1 for x, y in zip(all_preds, all_labels) if x y) total len(all_labels) accuracy correct / total * 100print(fTest Accuracy: {accuracy:.2f}%)完整代码和数据集在附件中可以自行查看。 6.总结 在本教程中我们从零开始构建了一个简单的卷积神经网络并用它来完成图片的二分类任务。我们介绍了如何定义网络结构如何训练和评估模型并讨论了进一步优化模型的方法。 接下来你可以尝试扩展网络的深度或宽度使用更大的数据集或者使用迁移学习等技术来提升模型的性能。祝你学习愉快 源码下载
http://www.hkea.cn/news/14562213/

相关文章:

  • 网站建设及维护包括范围国际俄罗斯乌克兰
  • 大规模网站开发语言缓存 wordpress 加速
  • python做软件界面济南seo关键词排名工具
  • 如何制造一个网站成全视频免费高清观看在线动漫
  • 上海松江做网站杂志社网站建设意义
  • 建网站自学纪念馆网站建设方案
  • 淘宝图片做链接的网站wordpress进行不
  • 江门网站建设推广网站建设方案的摘要怎么写
  • 无锡软件网站开发公司小甲鱼网站开发
  • 社区网站开发百度网站html验证
  • 云南网站优化排名长沙专业网站优化定制
  • 做网站应下哪个软件重点实验室网站建设的意义
  • 哈尔滨cms网站建设服务专业的网页制作公司
  • 专业网站建站企业标小智在线logo免费设计
  • 苏州乡村旅游网站建设策划书.doc自己做网站需要花钱吗
  • 小昆山网站建设小学生广告语20条
  • 潍坊网站制作策划哈尔滨小程序开发制作公司
  • vue做直播网站将wordpress做成淘宝客
  • 求个国外在线网站重庆排名seo公司
  • 网站首页seo怎么做wordpress 自定义头像插件
  • 东方建设官方网站陕西一建2022停考
  • 网页设计网站费用天津网站建设的公司哪家好
  • 湖南网站建站系统哪家好google翻译
  • 微盟是做什么的优化设计七年级上册英语答案
  • 国家标准物质网站建设wifi管理网站
  • 网站项目规划与设计方案百度图片搜索网页版
  • 微信网站建设报价广州注册公司核名
  • 被墙的网站有哪些常熟做公司网站
  • 有域名建网站推广平台有哪些app
  • 织梦网站程序模板下载地址中文域名.网站