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

外卖网站怎么做销量宝安做棋牌网站建设

外卖网站怎么做销量,宝安做棋牌网站建设,新人做外贸哪个平台好做,怎么在百度创建网站想入门pytorch强化学习#xff0c;就去找pytorch的课来看。B站上播放量最高的就是小土堆的课#xff0c;整体跟下来感觉内容还是很详细的#xff0c;但和我的预期不太一样#xff0c;这个是DL的不是RL的#xff0c;不过作为对于pytorch使用的初期了解也是很好的#xff0…  想入门pytorch强化学习就去找pytorch的课来看。B站上播放量最高的就是小土堆的课整体跟下来感觉内容还是很详细的但和我的预期不太一样这个是DL的不是RL的不过作为对于pytorch使用的初期了解也是很好的这篇博客就把整个学习过程做一个梳理。   注意本笔记使用的数据集全部都是CIFAR10下载比较简单~下面开始 数据读取 在读取之前需要先准备好数据了对于CIFAR10,可以离线下载(网址https://download.pytorch.org/tutorial/hymenoptera_data.zip)下载后保存到dataset文件夹目录结构如下   下面就是对于图片的读取起初的读取都是通过PIL后面会换成dataloader主要是自己定义了一个类传递了两个参数实例如下 read_data.py # function使用PIL完成数据的读取可查看 from torch.utils.data import Dataset from PIL import Image import osclass MyData(Dataset):def __init__(self, root_dir, label_dir):self.root_dir root_dirself.label_dir label_dirself.path os.path.join(self.root_dir, self.label_dir)self.img_path os.listdir(self.path)def __getitem__(self, idx):img_name self.img_path[idx]img_item_path os.path.join(self.root_dir, self.label_dir, img_name)img Image.open(img_item_path)img.show()label self.label_dirreturn img, labeldef __len__(self):return len(self.img_path)root_dir dataset/train ants_label_dir ants ants_datasets MyData(root_dir, ants_label_dir) ants_datasets.__getitem__(0) # 输入查看图片编号即可 print(len(ants_datasets))tensorboard使用 tensorboard是一个可视化工具可以用来看图片或者分析数据。   先说一下安装在安装的时候报了两个错 报错ModuleNotFoundError: No module named tensorboard 解决pip install tensorboard -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com报错ModuleNotFoundError: No module named six 解决pip install six -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com使用方法 1.按照主要模板写框架 from torch.utils.tensorboard import SummaryWriterwriter SummaryWriter(logs) # 这个logs是生成日志文件的文件夹名可随意更换 writer.add_image() # 添加一张图像第一个参数是tag第二个是数据本身第三个是编号 wirter.add_images() # 添加多张图像第一个是tag第二个是数据本身第三个是编号 writer.add_scalar() # 添加数值 第一个参数是tag, 再后是先y后x, 例如writer.add_scalar(y2x, 2*i, i) writer.add_graph(tudui, input) # 查看网络结构tudui是模型input是模型输入 writer.close()执行代码过后就会在logs文件夹下生成event文件 2.在terminal中按照tensorboard --logdirlogs使用 3.点进localhost的链接中就可以查看了 还可以看网络结构 test_tb.py # function展示tensorboard的使用 from torch.utils.tensorboard import SummaryWriter import numpy as np from PIL import Imagewriter SummaryWriter(logs)# add_image使用 image_path dataset/train/ants/5650366_e22b7e1065.jpg image_path1 dataset/train/ants/6240329_72c01e663e.jpg img_PIL Image.open(image_path) img_array np.array(img_PIL) img_PIL1 Image.open(image_path1) img_array1 np.array(img_PIL1) writer.add_image(image, img_array, 1, dataformatsHWC) # 这个通道顺序需要改tensorboard默认使用的是tensor结构但这个读的是PIL结构 writer.add_image(image, img_array1, 2, dataformatsHWC)# add_scalar使用 # for i in range(100): # writer.add_scalar(y2x, 2*i, i) writer.close()transforms使用 transforms是用来进行数据类型的转换pytorch中使用的数据格式大多是Tensortransfroms直接提供了工具 transforms_learn.py # function展示transforms的基本使用格式 from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transforms import numpy as npwriter SummaryWriter(logs)# python用法 → tensor数据类型 # 通过transform.ToTensor看两个问题# 1. transform如何使用# 2. 为什么需要Tensor image_path dataset/train/ants/522163566_fec115ca66.jpg # PIL → Tensor() img Image.open(image_path) tensor_trans transforms.ToTensor() tensor_img tensor_trans(img)writer.add_image(image, tensor_img, 1) writer.close()useful_transforms.py 有几个常见的transforms可以记一下使用方法ToTensor(转换为Tensor类型)Normalize(做正则化)Resize(调整数据shape)Compose(将多个transfroms整合在一起)RandomCrop(随机裁剪数据)使用方式如下 # function展示部分常见transfroms包括ToTensor(转换为Tensor类型)Normalize(做正则化)Resize(调整数据shape)Compose(将多个transfroms整合在一起)RandomCrop(随机裁剪数据) from PIL import Image from torch.utils.tensorboard import SummaryWriter from torchvision import transformswriter SummaryWriter(logs) img Image.open(dataset/train/ants/5650366_e22b7e1065.jpg)# ToTensor trans_totensor transforms.ToTensor() img_tensor trans_totensor(img)# Normalize trans_norm transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5]) img_norm trans_norm(img_tensor)# Resize # 输入序列(512, 512)或者数值(512, 会生成方阵) trans_resize transforms.Resize((512, 512)) img_resize trans_resize(img) img_resize trans_totensor(img_resize)# Compose # PIL → PIL → tensor trans_resize_2 transforms.Resize(512) trans_compose transforms.Compose([trans_resize_2, trans_totensor]) img_resize_2 trans_compose(img)# RandomCrop——随机裁剪 trans_ramdom transforms.RandomCrop(128) trans_compose_2 transforms.Compose([trans_ramdom, trans_totensor]) for i in range(10):img_crop trans_compose_2(img)writer.add_image(RandomCrop, img_crop, i)writer.add_image(ToTensor, img_tensor, 1) writer.add_image(Norm, img_norm, 2) writer.add_image(Resize, img_resize, 3) writer.add_image(Compose, img_resize_2, 4) writer.close()dataset_transforms.py 这个主要开始使用dataLoader进行数据提取了因为图片数据直接是PIL类型所以在dataloader的时候就要进行transforms。datasets来源于torchversion     torchversion可以下载默认数据集     torchvisiondataset 下载数据集     torchvisiondataloader 选择特定数据下载   使用方式如下 import torchvision from torch.utils.tensorboard import SummaryWriter from torch.utils.data import DataLoader# # torchvision.datasets使用 # dataset_transform torchvision.transforms.Compose([torchvision.transforms.ToTensor()]) # train_set torchvision.datasets.CIFAR10(root./dataset, trainTrue, transformdataset_transform, downloadTrue) # test_set torchvision.datasets.CIFAR10(root./dataset, trainFalse, transformdataset_transform, downloadTrue) # # writer SummaryWriter(dataset_transformer) # for i in range(10): # img, target train_set[i] # writer.add_image(test_set, img, i) # writer.close()# # torchvision.DataLoader使用 test_data torchvision.datasets.CIFAR10(./dataset, trainFalse, transformtorchvision.transforms.Compose([torchvision.transforms.ToTensor()])) test_loader DataLoader(datasettest_data, batch_size64, shuffleTrue, num_workers0, drop_lastTrue)img, target test_data[0] print(img.shape) print(target)step 0 writer SummaryWriter(dataloader) for data in test_loader:imgs, targets datawriter.add_images(dataloader, imgs, step) # 注意批量添加的时候使用add_images函数step step 1 writer.close()torch.nn使用 torch.nn是pytorch对于神经网络(neural network)提供的有关操作支持具体的东西有很多只讲解了一部分常用的 conv2d 卷积操作的实现(具体啥是卷积视频里解释的很详细)我在这里就留个模板了 nn_conv2d.py # torch.nn 的卷积conv2d 实例 import torch import torchvision from torch import nn from torch.nn import Conv2d from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset torchvision.datasets.CIFAR10(./dataset, trainFalse, transformtorchvision.transforms.ToTensor(), downloadTrue) dataLoader DataLoader(dataset, batch_size64)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.conv1 Conv2d(in_channels3, out_channels6, kernel_size3, stride1, padding0)def forward(self, x):x self.conv1(x)return xtudui Tudui() step 0 writter SummaryWriter(logs_conv2d) for data in dataLoader:imgs, targets dataoutput tudui(imgs)writter.add_images(input, imgs, step)output torch.reshape(output, [-1, 3, 30, 30])writter.add_images(output, output, step)step step 1nn.module基本使用 上面的Tudui类继承了nn.module其实这个是整体pytorch关于神经网络的父类使用时继承就好了留一个简单的模板 nn_module.py # functionnn.module的基本使用 import torch from torch import nn class Tudui(nn.Module):# 注意父类写的格式def __init__(self):super().__init__()def forward(self, input):output input 1return outputtudui Tudui() x torch.tensor(1.0) output tudui(x) print(output)maxpool.py 最大池化和卷积区别     卷积是利用卷积核做计算维度不变     卷积是利用卷积核计算后取最大值维度不变   最大池化的实现 # functiontorch.nn 最大池化maxpool示例 import torch import torchvision from torch import nn from torch.nn import MaxPool2d from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset torchvision.datasets.CIFAR10(./dataset, downloadTrue, trainFalse, transformtorchvision.transforms.ToTensor()) dataLoader DataLoader(dataset, batch_size64)input torch.tensor([[1, 2, 0, 3, 1],[0, 1, 2, 3, 1],[1, 2, 1, 0, 0],[5, 2, 5, 1, 1],[2, 1, 0, 1, 2]], dtypetorch.float32) input torch.reshape(input, (-1, 1, 5, 5)) print(input.shape)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()# ceil_mode为True保留边框部分(多)# ceil_mode为False不保留边框部分(少)self.maxpool MaxPool2d(kernel_size3, ceil_modeFalse)def forward(self, input):output self.maxpool(input)return outputwriter SummaryWriter(log_maxpool) tudui Tudui() output tudui(input) step 0 for data in dataLoader:imgs, targets datawriter.add_images(intput, imgs, step)output tudui(imgs)writer.add_images(output, output, step)step step 1 writer.close()linear.py 线性化的实现 import torch import torchvision from torch import nn from torch.nn import Linear from torch.utils.data import DataLoaderdataset torchvision.datasets.CIFAR10(./dataset, downloadTrue, trainFalse, transformtorchvision.transforms.ToTensor()) dataLoader DataLoader(dataset, batch_size64)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.Linear Linear(196608, 10)def forward(self, input):output self.Linear(input)return outputtudui Tudui() for data in dataLoader:imgs, targets dataprint(imgs.shape)output torch.flatten(imgs)print(output.shape)output tudui(output)print(output.shape) loss loss是损失函数pytorch中提供了几种可以直接使用的我在这里直接举例了 nn_loss.py # function损失函数使用示例 import torch from torch.nn import L1Loss from torch import nninputs torch.tensor([1, 2, 3], dtypetorch.float32) targets torch.tensor([1, 2, 5], dtypetorch.float32)inputs torch.reshape(inputs, (1, 1, 1, 3)) targets torch.reshape(targets, (1, 1, 1, 3))# L1直接损失 loss L1Loss() result loss(inputs, targets)# 均方差损失 loss_mse nn.MSELoss() result_mes loss_mse(inputs, targets)x torch.tensor([0.1, 0.2, 0.3]) y torch.tensor([1]) x torch.reshape(x, (1, 3)) loss_cross nn.CrossEntropyLoss() result_cross loss_cross(x, y) print(result) print(result_mes) print(result_cross)optimal 优化器的使用有个模板 optim.zero_grad() # 1.设置梯度为0result_loss.backward() # 2.计算梯度进行反向传播optim.step() # 3.进行梯度更新调整权重参数(降低loss)示例如下 nn_optimal.py import torch import torchvision from torch import nn from torch.nn import Conv2d, Linear, Sequential from torch.nn import MaxPool2d from torch.nn import Flatten from torch.utils.data import DataLoader, dataloader from nn_loss import lossclass Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.model Sequential(Conv2d(3, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 64, 5, padding2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, input):x self.model(input)return xdataset torchvision.datasets.CIFAR10(./dataset, trainFalse, transformtorchvision.transforms.ToTensor(), downloadTrue) dataLoader DataLoader(dataset, batch_size1)loss nn.CrossEntropyLoss() tudui Tudui() optim torch.optim.SGD(tudui.parameters(), lr0.01) for epoch in range(20):running_loss 0.0for data in dataLoader:imgs, targets dataoutputs tudui(imgs)result_loss loss(outputs, targets)optim.zero_grad() # 1.设置梯度为0result_loss.backward() # 2.计算梯度进行反向传播optim.step() # 3.进行梯度更新调整权重参数(降低loss)running_loss running_loss result_lossprint(running_loss)relu.py 引入非线性(线性的表彰不好)示例如下 import torch import torchvision from torch import nn from torch.nn import ReLU from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterinput torch.tensor([[1, 0.5],[-1, 3]]) input torch.reshape(input, (-1, 1, 2, 2)) print(input)dataset torchvision.datasets.CIFAR10(./dataset, downloadTrue, trainFalse, transformtorchvision.transforms.ToTensor()) dataLoader DataLoader(dataset, batch_size64)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.relu ReLU()def forward(self, input):output self.relu(input)return output writer SummaryWriter(logs_relu) tudui Tudui() output tudui(input) step 0 for data in dataLoader:imgs, targets datawriter.add_images(input, imgs, step)output tudui(imgs)writer.add_images(output, output, step)step step 1 writer.close()print(output) sequential.py 传统方式写模型要在forward中一层一层写 结构。使用sequential可以直接在model中进行定义示例如下 ## 传统方式自己写模型 # import torch # from torch import nn # from torch.nn import Conv2d, Linear, Sequential # from torch.nn import MaxPool2d # from torch.nn import Flatten # # class Tudui(nn.Module): # def __init__(self): # super(Tudui, self).__init__() # self.conv1 Conv2d(3, 32, 5, padding2) # self.maxpool1 MaxPool2d(2) # self.conv2 Conv2d(32, 32, 5, padding2) # self.maxpool2 MaxPool2d(2) # self.conv3 Conv2d(32, 64, 5, padding2) # self.maxpool3 MaxPool2d(2) # self.flatten Flatten() # self.linear1 Linear(1024, 64) # self.linear2 Linear(64, 10) # # def forward(self, input): # x self.conv1(input) # x self.maxpool1(x) # x self.conv2(x) # x self.maxpool2(x) # x self.conv3(x) # x self.maxpool3(x) # x self.flatten(x) # x self.linear1(x) # x self.linear2(x) # return x # # tudui Tudui() # input torch.ones((64, 3, 32, 32)) # output tudui(input) # print(output.shape)## 使用Sequential写模型 import torch from torch import nn from torch.nn import Conv2d, Linear, Sequential from torch.nn import MaxPool2d from torch.nn import Flatten from torch.utils.tensorboard import SummaryWriterclass Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.model Sequential(Conv2d(3, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 64, 5, padding2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, input):x self.model(input)return xwriter SummaryWriter(logs_sequential) tudui Tudui() input torch.ones((64, 3, 32, 32)) output tudui(input) writer.add_graph(tudui, input) writer.close() print(output.shape)整体模型训练 train_cpu.py 示例如下 import torchvision from torch.utils.data import DataLoader import torch from torch import nn from torch.utils.tensorboard import SummaryWritertrain_data torchvision.datasets.CIFAR10(./dataset, trainTrue, downloadTrue, transformtorchvision.transforms.ToTensor()) test_data torchvision.datasets.CIFAR10(./dataset, trainFalse, downloadTrue, transformtorchvision.transforms.ToTensor())# length train_data_size len(train_data) test_data_size len(test_data) print(训练数据集长度为{}.format(train_data_size)) print(测试数据集长度为{}.format(test_data_size))# 利用dataloader来加载数据集 train_dataloader DataLoader(train_data, batch_size64) test_dataloader DataLoader(test_data, batch_size64)# 搭建神经网络 class Tudui(nn.Module):def __init__(self):super(Tudui, self).__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),nn.Flatten(),nn.Linear(64*4*4, 64),nn.Linear(64, 10))def forward(self, input):x self.model(input)return x### 测试模型正确性 # if __name__ __main__: # tudui Tudui() # input torch.ones((64, 3, 32, 32)) # output tudui(input) # print(output.shape)# 创建网络模型 tudui Tudui()# 损失函数 loss_fn nn.CrossEntropyLoss()# 优化器 learning_rate 1e-2 optimizer torch.optim.SGD(tudui.parameters(), lrlearning_rate)# 设置训练网络的一些参数 total_train_step 0 total_test_step 0 # 训练轮数 epoch 10# 添加tensorboard writter SummaryWriter(logs_train)total_test_step 0 for i in range(10):print(-----第{}轮训练开始----.format(i1))# 训练步骤开始tudui.train() #特定层Dropoutfor data in train_dataloader:# 1. 数据导入imgs, targets data# 2. 模型导入outputs tudui(imgs)# 3. loss计算loss loss_fn(outputs, targets)# 4. 优化器优化模型optimizer.zero_grad()loss.backward()optimizer.step()total_train_step total_train_step 1if total_train_step % 100 0:print(训练次数{}, loss:{}.format(total_train_step, loss.item())) #loss.item()相当于取值writter.add_scalar(train_loss, loss.item(), total_train_step)# 测试步骤开始tudui.eval()total_test_loss 0total_accuracy 0with torch.no_grad():for data in test_dataloader:imgs, targets dataoutputs tudui(imgs)loss loss_fn(outputs, targets)total_test_loss total_test_loss loss.item()accuracy (outputs.argmax(1) targets).sum()total_accuracy total_accuracy accuracyprint(整体测试集上的loss:{}.format(total_test_loss))print(整体测试集上的正确率{}.format(total_accuracy/test_data_size))writter.add_scalar(test_loss, loss.item(), total_test_step)writter.add_scalar(test_accuracy, total_accuracy/test_data_size, total_test_step)total_test_step total_test_step 1# 保存训练模型torch.save(tudui, tudui_{}.pth.format(i))print(模型已保存) writter.close() train_gpu.py 示例如下 # 与CPU的区别在网络模型、数据、损失函数上增加cuda()import torchvision from torch.utils.data import DataLoader import torch from torch import nn from torch.utils.tensorboard import SummaryWritertrain_data torchvision.datasets.CIFAR10(./dataset, trainTrue, downloadTrue, transformtorchvision.transforms.ToTensor()) test_data torchvision.datasets.CIFAR10(./dataset, trainFalse, downloadTrue, transformtorchvision.transforms.ToTensor())# length train_data_size len(train_data) test_data_size len(test_data) print(训练数据集长度为{}.format(train_data_size)) print(测试数据集长度为{}.format(test_data_size))# 利用dataloader来加载数据集 train_dataloader DataLoader(train_data, batch_size64) test_dataloader DataLoader(test_data, batch_size64)# 搭建神经网络 class Tudui(nn.Module):def __init__(self):super(Tudui, self).__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),nn.Flatten(),nn.Linear(64*4*4, 64),nn.Linear(64, 10))def forward(self, input):x self.model(input)return x### 测试模型正确性 # if __name__ __main__: # tudui Tudui() # input torch.ones((64, 3, 32, 32)) # output tudui(input) # print(output.shape)# 创建网络模型 tudui Tudui() tudui Tudui().cuda()# 损失函数 loss_fn nn.CrossEntropyLoss() loss_fn loss_fn.cuda()# 优化器 learning_rate 1e-2 optimizer torch.optim.SGD(tudui.parameters(), lrlearning_rate)# 设置训练网络的一些参数 total_train_step 0 total_test_step 0 # 训练轮数 epoch 10# 添加tensorboard writter SummaryWriter(logs_train)total_test_step 0 for i in range(10):print(-----第{}轮训练开始----.format(i1))# 训练步骤开始tudui.train() #特定层Dropoutfor data in train_dataloader:# 1. 数据导入imgs, targets dataimgs imgs.cuda()targets targets.cuda()# 2. 模型导入outputs tudui(imgs)# 3. loss计算loss loss_fn(outputs, targets)# 4. 优化器优化模型optimizer.zero_grad()loss.backward()optimizer.step()total_train_step total_train_step 1if total_train_step % 100 0:print(训练次数{}, loss:{}.format(total_train_step, loss.item())) #loss.item()相当于取值writter.add_scalar(train_loss, loss.item(), total_train_step)# 测试步骤开始tudui.eval()total_test_loss 0total_accuracy 0with torch.no_grad():for data in test_dataloader:imgs, targets dataimgs imgs.cuda()targets targets.cuda()outputs tudui(imgs)loss loss_fn(outputs, targets)total_test_loss total_test_loss loss.item()accuracy (outputs.argmax(1) targets).sum()total_accuracy total_accuracy accuracyprint(整体测试集上的loss:{}.format(total_test_loss))print(整体测试集上的正确率{}.format(total_accuracy/test_data_size))writter.add_scalar(test_loss, loss.item(), total_test_step)writter.add_scalar(test_accuracy, total_accuracy/test_data_size, total_test_step)total_test_step total_test_step 1# 保存训练模型torch.save(tudui, tudui_{}.pth.format(i))print(模型已保存) writter.close() 模型保存 model_save.py 示例如下 # function训练模型的保存 import torch import torchvisionvgg16 torchvision.models.vgg16(pretrainedFalse)# 保存方式1 torch.save(vgg16, vgg16_method1.pth)# 保存方式2(官方推荐) torch.save(vgg16.state_dict(), vgg16_method2.pth)模型加载 model_loader 示例如下 # function现有模型加载import torch import torchvisionmodel torch.load(vgg16_method1.pth) print(model)vgg16 torchvision.models.vgg16(pretrainedFalse) vgg16.load_state_dict(torch.load(vgg16_method2.pth)) # model torch.load(vgg16_method2.pth) # 直接是字典权重 print(model)模型使用 model_use.py 示例如下 # function自找图片验证train.py训练的模型准确性 import torch import torchvision from PIL import Image from torch import nnimage_path dog.png image Image.open(image_path)transform torchvision.transforms.Compose([torchvision.transforms.Resize((32, 32)), torchvision.transforms.ToTensor()])image transform(image)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__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),nn.Flatten(),nn.Linear(64*4*4, 64),nn.Linear(64, 10))def forward(self, input):x self.model(input)return xmodel torch.load(tudui_9.pth) image torch.reshape(image, (1, 3, 32, 32)) image image.cuda() model.eval() with torch.no_grad():output model(image) print(output.argmax(1))预模型使用 premodel_use.py 示例如下 # function使用现有网络对现有数据集进行训练 import torchvision from torch import nnvgg16_false torchvision.models.vgg16(pretrainedFalse) vgg16_true torchvision.models.vgg16(pretrainedTrue) print(vgg16_true)train_data torchvision.datasets.CIFAR10(./dataset, trainTrue, downloadTrue, transformtorchvision.transforms.ToTensor()) # CIFAR10最终的输出结果是10类所以必须按照原来的增加一层 vgg16_true.classifier.add_module(add_linear, nn.Linear(1000, 10)) print(vgg16_true)# CIFAR10最终的输出结果是10类也可以在原来基础上做改动 vgg16_false.classifier[6] nn.Linear(4096, 10) print(vgg16_false) 以上简单的了解了下pytorch的基础学习仍在继续继续加油~
http://www.sadfv.cn/news/392196/

相关文章:

  • 做网站是要编程吗钢铁网站建设初衷
  • 做西餐网站赣州新闻联播直播
  • 网站内部流程网站建设会议报道
  • dw做网站简单首页做国厂家的网站
  • 网站抓取诊断手机h5网站模板下载
  • 万能建站网站建设工程施工包括哪些工程
  • 济宁城乡建设局网站照片编辑在线
  • 点击网络怎么做网站有哪些好的网站项目
  • 泉州网站建设定制旅游app推广营销策略
  • 设计个网站要多少钱医院网站建设作用
  • 有哪些做的比较好的网站建设六马路小学官方网站
  • seo网站推广工具网页设计图片尺寸
  • 做视频网站需要流量开发网站 要网站icp经营许可证吗
  • 娄底网站建设79ld惠阳市网站建设
  • 做营销型网站需要注意哪些点建设工程网站贴吧
  • 上海专门做网站的公司网页快速收录
  • 网站建设和推广的完整话术Wordpress文章页面小工具
  • 网站开发需要掌握哪些技术公司网站在哪备案
  • 网站建设去哪找客户海南网站运营公司
  • wordpress直接访问站点有个网站可以学做ppt
  • 腾讯云免费网站建设flash网站模板中心
  • 自助网站建设系统外贸平台有哪些用户量大的
  • 如何免费建设自己稳定的网站网站内页要不要加上关键词和描述
  • 黑龙江城乡建设厅网站园林景观设计公司管理制度及流程
  • 企业网站搭建程序PHP网站开发用什么电脑
  • 做网站头文件展馆设计图
  • 杭州装饰网站建设方案企业官网网站建设报价
  • 会计培训班一般多少钱优化的意思
  • 长春网站优化公司租一个国外的服务器 建设网站
  • 如何使用手机看建设网站注册公司一般流程