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

dede网站地图怎么做长沙公司做网站大概多少钱

dede网站地图怎么做,长沙公司做网站大概多少钱,惠州学院网站建设,贵州省住房和城乡建设厅查询网站步骤一#xff1a;定义神经网络结构 注意#xff1a;由于一次batch_size的大小为64#xff0c;表示一次放入64张图片#xff0c;且Flatten()只会对单张图片的全部通道做拉直操作#xff0c;也就是不会将batch_size合并#xff0c;但是一张图片有3个通道#xff0c;在Ma…步骤一定义神经网络结构 注意由于一次batch_size的大小为64表示一次放入64张图片且Flatten()只会对单张图片的全部通道做拉直操作也就是不会将batch_size合并但是一张图片有3个通道在Maxpool层之后有64个通道且每个通道的大小为4*4所以Flatten()的输入为[64, 64, 4, 4]那么Flatten()的输出就为[64, 1024] 1024 64 * 4 * 4注意通过ones()函数创建一个全1的tensor作为输入数据我们只需要指定输入数据的形状即可我们可以通过ones()创建的简单输入来检测网络的结构是否正确()内写序列代码如下 # 搭建神经网络 import torch from torch import nnclass Tudui(nn.Module):def __init__(self):super().__init__()self.model nn.Sequential(nn.Conv2d(3,32,5,1,2),nn.MaxPool2d(2),nn.Conv2d(32,32,5,1, 2),nn.MaxPool2d(2),nn.Conv2d(32,64,5,1,2),nn.MaxPool2d(2),# 由于一次batch_size的大小为64表示一次放入64张图片且Flatten()只会对单张图片的全部通道做拉直操作也就是不会将batch_size合并# 但是一张图片有3个通道在Maxpool层之后有64个通道且每个通道的大小为4*4所以Flatten()的输入为[64, 64, 4, 4]# 那么Flatten()的输出就为[64, 1024] 1024 64 * 4 * 4nn.Flatten(),nn.Linear(1024, 64),nn.Linear(64, 10))def forward(self, x):x self.model(x)return xif __name__ __main__:tudui Tudui()# 通过ones()函数创建一个全1的tensor作为输入数据我们只需要指定输入数据的形状即可# 我们可以通过ones()创建的简单输入来检测网络的结构是否正确()内写序列input torch.ones((64, 3, 32, 32))output tudui(input)print(output.shape)步骤二导入数据集载入数据创建网络模型设置训练参数 注意有些代码的模型结构在module.py文件夹内需要我们手动导包后才能创建实例注意 先进行梯度清零之后再反向传播、更新参数注意优化器实例 . 梯度清零损失实例 . 反向传播优化器实例 . 更新参数 import torch import torchvision from torch import nn from torch.utils.data import DataLoader from torchvision.transforms import transformsfrom learn_pytorch.module import Tuduitrain_dataset torchvision.datasets.CIFAR10(rootDataset, trainTrue, transformtransforms.ToTensor(), downloadTrue) test_dataset torchvision.datasets.CIFAR10(rootDataset, trainFalse, transformtransforms.ToTensor(), downloadTrue)# 获得训练数据集和测试数据集的大小 train_dataset_size len(train_dataset) test_dataset_size len(test_dataset) print(训练数据集大小:, train_dataset_size) print(测试数据集大小:, test_dataset_size)# 加载训练数据集和测试数据集 train_loader DataLoader(datasettrain_dataset, batch_size64) test_loader DataLoader(datasettest_dataset, batch_size64)# 创建网络模型 tudui Tudui() # 创建损失函数 loss_fn nn.CrossEntropyLoss() # 创建优化器 # 1e-3 1 * 10^(-3) 0.001 learn_rate 1e-3 optimizer torch.optim.SGD(tudui.parameters(), lrlearn_rate)# 设置训练网络的一些参数 # 训练的次数 total_train_step 0 # 测试的次数 total_test_step 0 # 训练的轮数 epoch 10for i in range(epoch):print(f----第{i1}轮训练开始----)for data in train_loader:inputs, targets dataoutputs tudui(inputs)loss loss_fn(outputs, targets)# 调用优化器的梯度清零optimizer.zero_grad()# 反向传播loss.backward()# 更新参数optimizer.step()total_train_step 1print(f训练次数: {total_train_step}, Loss: {loss.item()})loss跟loss.item()的区别在于 如果loss为tensor格式那么输出会带有tensor()而如果我们使用 .item()格式则不会带有tensor()如下 import torcha torch.tensor(5) print(a) print(a.item())# 输出结果 # tensor(5) # 5步骤三测试模型性能 由于我们每轮训练结束都需要看模型有没有训练好所以我们需要用测试集对模型进行测试同时我们不希望模型根据测试集来更新梯度即保证测试集不被污染使用 with torch.no_grad()来关闭梯度计算注意因为此处我们没有使用梯度所以虽然看起来不写 with torch.no_grad()和写没有什么区别但是如果不写就算不把梯度写入模型中系统仍会计算梯度。而我们在测试时不需要更新参数即不需要梯度计算所以在测试过程中它会降低计算效率。综上推荐在测试时关闭梯度计算代码如下 import torch import torchvision from torch import nn from torch.utils.data import DataLoader from torchvision.transforms import transformsfrom learn_pytorch.module import Tuduitrain_dataset torchvision.datasets.CIFAR10(rootDataset, trainTrue, transformtransforms.ToTensor(), downloadTrue) test_dataset torchvision.datasets.CIFAR10(rootDataset, trainFalse, transformtransforms.ToTensor(), downloadTrue)# 获得训练数据集和测试数据集的大小 train_dataset_size len(train_dataset) test_dataset_size len(test_dataset) print(训练数据集大小:, train_dataset_size) print(测试数据集大小:, test_dataset_size)# 加载训练数据集和测试数据集 train_loader DataLoader(datasettrain_dataset, batch_size64) test_loader DataLoader(datasettest_dataset, batch_size64)# 创建网络模型 tudui Tudui() # 创建损失函数 loss_fn nn.CrossEntropyLoss() # 创建优化器 # 1e-3 1 * 10^(-3) 0.001 learn_rate 1e-3 optimizer torch.optim.SGD(tudui.parameters(), lrlearn_rate)# 设置训练网络的一些参数 # 训练的次数 total_train_step 0 # 测试的次数 total_test_step 0 # 训练的轮数 epoch 10for i in range(epoch):print(f----第{i1}轮训练开始----)for data in train_loader:inputs, targets dataoutputs tudui(inputs)loss loss_fn(outputs, targets)# 调用优化器的梯度清零optimizer.zero_grad()# 反向传播loss.backward()# 更新参数optimizer.step()total_train_step 1if total_train_step % 100 0:print(f训练次数: {total_train_step}, Loss: {loss.item()})# 测试模型total_test_loss 0# 模型运行以下代码时不会计算梯度也就是不会更新参数with torch.no_grad():for data in test_loader:inputs, targets dataoutputs tudui(inputs)loss loss_fn(outputs, targets)total_test_loss loss.item()print(f测试Loss {total_test_loss})步骤四在tensorboard中展示输出结果 注意要在代码的结尾关闭writer代码如下 import torch import torchvision from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter from torchvision.transforms import transformsfrom learn_pytorch.module import Tuduitrain_dataset torchvision.datasets.CIFAR10(rootDataset, trainTrue, transformtransforms.ToTensor(), downloadTrue) test_dataset torchvision.datasets.CIFAR10(rootDataset, trainFalse, transformtransforms.ToTensor(), downloadTrue)# 获得训练数据集和测试数据集的大小 train_dataset_size len(train_dataset) test_dataset_size len(test_dataset) print(训练数据集大小:, train_dataset_size) print(测试数据集大小:, test_dataset_size)# 加载训练数据集和测试数据集 train_loader DataLoader(datasettrain_dataset, batch_size64) test_loader DataLoader(datasettest_dataset, batch_size64)# 创建网络模型 tudui Tudui() # 创建损失函数 loss_fn nn.CrossEntropyLoss() # 创建优化器 # 1e-3 1 * 10^(-3) 0.001 learn_rate 1e-3 optimizer torch.optim.SGD(tudui.parameters(), lrlearn_rate) # 创建tensorboard的writer writer SummaryWriter(logs_module)# 设置训练网络的一些参数 # 训练的次数 total_train_step 0 # 测试的次数 total_test_step 0 # 训练的轮数 epoch 10for i in range(epoch):print(f----第{i1}轮训练开始----)for data in train_loader:inputs, targets dataoutputs tudui(inputs)loss loss_fn(outputs, targets)# 调用优化器的梯度清零optimizer.zero_grad()# 反向传播loss.backward()# 更新参数optimizer.step()total_train_step 1if total_train_step % 100 0:print(f训练次数: {total_train_step}, Loss: {loss.item()})# 将训练的Loss写入tensorboardwriter.add_scalar(train_loss, loss.item(), total_train_step)# 测试模型total_test_loss 0# 模型运行以下代码时不会计算梯度也就是不会更新参数with torch.no_grad():for data in test_loader:inputs, targets dataoutputs tudui(inputs)loss loss_fn(outputs, targets)total_test_loss loss.item()# 每轮测试结束后给测试的次数加1total_test_step 1print(f测试Loss {total_test_loss})# 将测试的Loss写入tensorboardwriter.add_scalar(test_loss, total_test_loss, total_test_step)writer.close()结果如下 步骤五保存每轮模型训练的结果 在每轮测试的代码后加入以下代码即可 torch.save(tudui, fpth/module{i})print(模型已保存)步骤六计算每轮训练的AP 注意通过argmax()来得出output的每组序列中哪一个下标的概率最大()内填1表示横向看0表示纵向看注意通过Preds target来得出每个预测是否与真实值相同返回False、True的序列注意通过.sum()来计算一共有多少个True 代码如下 import torch import torchvision from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter from torchvision.transforms import transformsfrom learn_pytorch.module import Tuduitrain_dataset torchvision.datasets.CIFAR10(rootDataset, trainTrue, transformtransforms.ToTensor(), downloadTrue) test_dataset torchvision.datasets.CIFAR10(rootDataset, trainFalse, transformtransforms.ToTensor(), downloadTrue)# 获得训练数据集和测试数据集的大小 train_dataset_size len(train_dataset) test_dataset_size len(test_dataset) print(训练数据集大小:, train_dataset_size) print(测试数据集大小:, test_dataset_size)# 加载训练数据集和测试数据集 train_loader DataLoader(datasettrain_dataset, batch_size64) test_loader DataLoader(datasettest_dataset, batch_size64)# 创建网络模型 tudui Tudui() # 创建损失函数 loss_fn nn.CrossEntropyLoss() # 创建优化器 # 1e-3 1 * 10^(-3) 0.001 learn_rate 1e-3 optimizer torch.optim.SGD(tudui.parameters(), lrlearn_rate) # 创建tensorboard的writer writer SummaryWriter(logs_module)# 设置训练网络的一些参数 # 训练的次数 total_train_step 0 # 测试的次数 total_test_step 0 # 训练的轮数 epoch 10for i in range(epoch):print(f----第{i1}轮训练开始----)for data in train_loader:inputs, targets dataoutputs tudui(inputs)loss loss_fn(outputs, targets)# 调用优化器的梯度清零optimizer.zero_grad()# 反向传播loss.backward()# 更新参数optimizer.step()total_train_step 1if total_train_step % 100 0:print(f训练次数: {total_train_step}, Loss: {loss.item()})# 将训练的Loss写入tensorboardwriter.add_scalar(train_loss, loss.item(), total_train_step)# 测试模型total_test_loss 0total_accuracy 0# 模型运行以下代码时不会计算梯度也就是不会更新参数with torch.no_grad():for data in test_loader:inputs, targets dataoutputs tudui(inputs)loss loss_fn(outputs, targets)total_test_loss loss.item()accuray (outputs.argmax(1) targets).sum()total_accuracy accurayprint(f测试准确率 {total_accuracy / test_dataset_size})# 每轮测试结束后给测试的次数加1total_test_step 1print(f测试Loss {total_test_loss})# 将测试的Loss写入tensorboardwriter.add_scalar(test_loss, total_test_loss, total_test_step)# 将测试的准确率写入tensorboardwriter.add_scalar(test_accuracy, total_accuracy / test_dataset_size, total_test_step)torch.save(tudui, fpth/module{i})print(模型已保存) writer.close()结果如下 注意事项 在模型的训练代码前可以加上如下代码因为有些网络层需要它才能表示训练状态开启官网解释如下 # 开始训练 tudui.train()在模型的测试代码前也可以加上如下代码因为有些网络层需要它才能表示测试状态开启官网解释如下 tudui.eval()
http://www.zqtcl.cn/news/726569/

相关文章:

  • 做推文封面的网站首页>新闻>正文 网站怎么做
  • 黄页推广引流网站企业网站导航菜单
  • 合肥专门做网站的公司广告代理商是什么意思
  • wordpress显示一个类目seo推广
  • 营销型电子商务网站特点如何申请免费空间和域名
  • 网站建设 主要学是么vk汉化网站谁做的
  • 做英文网站费用多少学校网站开发毕业设计
  • 红动中国设计网站官网网页制作的论文
  • 云阳一平米网站建设西安设计工作室推荐
  • 网站长尾关键词优化网页设计定制代理
  • 海东电子商务网站建设运城市网站建设公司
  • 网站建设得要素电子商务网站建设与维护项目五
  • 网站备案无前置审批文件南宁市建设厅网站
  • 百度网站体检手机网页小游戏
  • 大型购物网站建设费用广告设计与制作软件有哪些
  • 郑州建设工程交易中心网站汉寿做网站的公司
  • 青岛企业做网站startuply中文版wordpress主题
  • 商标设计网站猪八戒网站建设与设计教程
  • 网站建设积分wordpress添加右侧菜单
  • 网站策划资料方案天津优化公司
  • 做网站推广哪家公司好成都最正规的装修公司
  • 菜鸟建网站如何制作推广网站
  • 无锡企业建站系统广州品牌网站建设
  • 什么网站能免费做公众号封面wordpress主题打不开
  • 扬州外贸网站建设制作广告的软件
  • 一个主机怎么做两个网站百度上的网站怎么做
  • 济南建设工程业绩公示的网站wordpress载入等待
  • seo公司名字太原百度seo排名软件
  • 安徽省城乡建设厅网站拼多多关键词排名在哪里看
  • 素材下载网站开发wordpress微信付款插件