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

做运动户外的网站都有哪些个人怎样免费建网站

做运动户外的网站都有哪些,个人怎样免费建网站,整合营销传播的定义,国外网站做网上生意哪个好步骤一#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.pierceye.com/news/446608/

相关文章:

  • 建设电影网站的关键苏州网站建设业务的公司
  • 水头哪里有做网站的店铺装修设计软件
  • 做网站的大骗子男女做爰视频免费网站
  • 建设一个网站选择的服务器安徽建站
  • 网站制作网站价格用网页制作个人网站
  • 衡水做网站报价网络工程毕设做网站
  • 做网站设计怎么样网站建设先进技术
  • 廊坊cms建站系统wd wordpress
  • vue做网站的好处是什么顺企网下载
  • 在线建站模板下载网站的软件
  • 阿里云网站全部清空怎么做重庆市渝快办官网
  • 关于网站优化的文章室内设计公司排名都有哪些
  • 英文外贸网站建设中国建筑出版在线官网app
  • 浙江网站建设服务公司shopex网站搬家
  • 网站服务器无法访问百姓装潢上海门店具体地址
  • 怎么做网站推广怎么样网页截图快捷键是哪个
  • 常州网站制作费用如何搭建网站的支付接口
  • 网站会员体系网站后台都有哪些
  • 宜昌网站建设制作公司网站301在哪做
  • 备案网站分布地点wordpress如何去掉amp:
  • 做一个小说阅读网站怎么做网站 没有备案 访问不了
  • 乐山乐人网站建设公司网站域名查主机名
  • 自适应网站的代表腰肌劳损的自我治疗和恢复的方法有什么?
  • 玉环城乡建设规划局网站企业网站源码带后台
  • 网站热点关键词免费可商用素材网站
  • 网站站内优化案例自己做的网页怎么上传网站吗
  • 深圳制作网站有用吗如何做网站优化
  • 皖住房建设厅网站the 7 wordpress
  • 怎么自己学着做网站写网站代码
  • 自己电脑上做的网站 怎么让别人看怎么做网站在谷歌