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

安徽整站优化网页制作与设计发展现状

安徽整站优化,网页制作与设计发展现状,中文网站开发工具,机票便宜 网站建设import torch from torch import nn from d2l import torch as d2l6.6.1 LeNet LetNet-5 由两个部分组成#xff1a; - 卷积编码器#xff1a;由两个卷积核组成。 - 全连接层稠密块#xff1a;由三个全连接层组成。模型结构如下流程图#xff08;每个卷积块由一个卷积层、…import torch from torch import nn from d2l import torch as d2l6.6.1 LeNet LetNet-5 由两个部分组成 - 卷积编码器由两个卷积核组成。 - 全连接层稠密块由三个全连接层组成。模型结构如下流程图每个卷积块由一个卷积层、一个 sigmoid 激活函数和平均汇聚层组成 全连接层(10) ↑ \uparrow ↑ 全连接层(84) ↑ \uparrow ↑ 全连接层(120) ↑ \uparrow ↑ 2 × 2 2\times2 2×2平均汇聚层步幅2 ↑ \uparrow ↑ 5 × 5 5\times5 5×5卷积层(16) ↑ \uparrow ↑ 2 × 2 2\times2 2×2平均汇聚层步幅2 ↑ \uparrow ↑ 5 × 5 5\times5 5×5卷积层(6)填充2 ↑ \uparrow ↑ 输入图像 28 × 28 28\times28 28×28 单通道 net nn.Sequential(nn.Conv2d(1, 6, kernel_size5, padding2), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.Sigmoid(),nn.AvgPool2d(kernel_size2, stride2),nn.Flatten(),nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),nn.Linear(120, 84), nn.Sigmoid(),nn.Linear(84, 10)) X torch.rand(size(1, 1, 28, 28), dtypetorch.float32) # 生成测试数据 for layer in net:X layer(X)print(layer.__class__.__name__,output shape: \t,X.shape) # 确保模型各层数据正确Conv2d output shape: torch.Size([1, 6, 28, 28]) Sigmoid output shape: torch.Size([1, 6, 28, 28]) AvgPool2d output shape: torch.Size([1, 6, 14, 14]) Conv2d output shape: torch.Size([1, 16, 10, 10]) Sigmoid output shape: torch.Size([1, 16, 10, 10]) AvgPool2d output shape: torch.Size([1, 16, 5, 5]) Flatten output shape: torch.Size([1, 400]) Linear output shape: torch.Size([1, 120]) Sigmoid output shape: torch.Size([1, 120]) Linear output shape: torch.Size([1, 84]) Sigmoid output shape: torch.Size([1, 84]) Linear output shape: torch.Size([1, 10])6.6.2 模型训练 batch_size 256 train_iter, test_iter d2l.load_data_fashion_mnist(batch_sizebatch_size) # 仍使用经典的 Fashion-MNIST 数据集def evaluate_accuracy_gpu(net, data_iter, deviceNone): #save使用GPU计算模型在数据集上的精度if isinstance(net, nn.Module):net.eval() # 设置为评估模式if not device:device next(iter(net.parameters())).devicemetric d2l.Accumulator(2) # 生成一个有两个元素的列表使用 add 将会累加到对应的元素上with torch.no_grad():for X, y in data_iter:# 为了使用 GPU需要将数据移动到 GPU 上if isinstance(X, list):X [x.to(device) for x in X]else:X X.to(device)y y.to(device)metric.add(d2l.accuracy(net(X), y), y.numel()) # 累加正确预测的数量总预测的数量return metric[0] / metric[1] # 正确率#save def train_ch6(net, train_iter, test_iter, num_epochs, lr, device):用GPU训练模型(在第六章定义)def init_weights(m): # 使用 Xavier 初始化权重if type(m) nn.Linear or type(m) nn.Conv2d:nn.init.xavier_uniform_(m.weight)net.apply(init_weights)print(training on, device)net.to(device) # 移动数据到GPUoptimizer torch.optim.SGD(net.parameters(), lrlr)loss nn.CrossEntropyLoss()animator d2l.Animator(xlabelepoch, xlim[1, num_epochs],legend[train loss, train acc, test acc])timer, num_batches d2l.Timer(), len(train_iter)for epoch in range(num_epochs):# 训练损失之和训练准确率之和样本数metric d2l.Accumulator(3)net.train()for i, (X, y) in enumerate(train_iter):timer.start()optimizer.zero_grad()X, y X.to(device), y.to(device)y_hat net(X)l loss(y_hat, y)l.backward()optimizer.step()with torch.no_grad():metric.add(l * X.shape[0], d2l.accuracy(y_hat, y), X.shape[0])timer.stop()train_l metric[0] / metric[2]train_acc metric[1] / metric[2]if (i 1) % (num_batches // 5) 0 or i num_batches - 1:animator.add(epoch (i 1) / num_batches,(train_l, train_acc, None))test_acc evaluate_accuracy_gpu(net, test_iter)animator.add(epoch 1, (None, None, test_acc))print(floss {train_l:.3f}, train acc {train_acc:.3f}, ftest acc {test_acc:.3f})print(f{metric[2] * num_epochs / timer.sum():.1f} examples/sec fon {str(device)})lr, num_epochs 0.9, 10 train_ch6(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())loss 0.471, train acc 0.820, test acc 0.815 40056.7 examples/sec on cuda:0练习 1将平均汇聚层替换为最大汇聚层会发生什么 net_Max nn.Sequential(nn.Conv2d(1, 6, kernel_size5, padding2), nn.Sigmoid(),nn.MaxPool2d(kernel_size2, stride2),nn.Conv2d(6, 16, kernel_size5), nn.Sigmoid(),nn.MaxPool2d(kernel_size2, stride2),nn.Flatten(),nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),nn.Linear(120, 84), nn.Sigmoid(),nn.Linear(84, 10))lr, num_epochs 0.9, 10 train_ch6(net_Max, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())loss 0.422, train acc 0.844, test acc 0.671 31151.6 examples/sec on cuda:0几乎无区别 2尝试构建一个基于 LeNet 的更复杂网络以提高其精准性。 a. 调节卷积窗口的大小。 b. 调整输出通道的数量。 c. 调整激活函数如 ReLU。 d. 调整卷积层的数量。 e. 调整全连接层的数量。 f. 调整学习率和其他训练细节例如初始化和轮数。net_Best nn.Sequential(nn.Conv2d(1, 8, kernel_size5, padding2), nn.ReLU(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(8, 16, kernel_size3, padding1), nn.ReLU(),nn.AvgPool2d(kernel_size2, stride2),nn.Conv2d(16, 32, kernel_size3, padding1), nn.ReLU(),nn.AvgPool2d(kernel_size2, stride2),nn.Flatten(),nn.Linear(32 * 3 * 3, 128), nn.ReLU(),nn.Linear(128, 64), nn.ReLU(),nn.Linear(64, 32), nn.ReLU(),nn.Linear(32, 10) )lr, num_epochs 0.4, 10 train_ch6(net_Best, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())loss 0.344, train acc 0.869, test acc 0.854 32868.3 examples/sec on cuda:03在 MNIST 数据集上尝试以上改进后的网络。 import torchvision from torch.utils import data from torchvision import transformstrans transforms.ToTensor() mnist_train torchvision.datasets.MNIST(root../data, trainTrue, transformtrans, downloadTrue) mnist_test torchvision.datasets.MNIST(root../data, trainFalse, transformtrans, downloadTrue) train_iter2 data.DataLoader(mnist_train, batch_size, shuffleTrue,num_workersd2l.get_dataloader_workers()) test_iter2 data.DataLoader(mnist_test, batch_size, shuffleTrue,num_workersd2l.get_dataloader_workers())lr, num_epochs 0.4, 5 # 大约 6 轮往后直接就爆炸 train_ch6(net_Best, train_iter2, test_iter2, num_epochs, lr, d2l.try_gpu())loss 0.049, train acc 0.985, test acc 0.986 26531.1 examples/sec on cuda:04显示不同输入例如毛衣和外套时 LetNet 第一层和第二层的激活值。 for X, y in test_iter:breakx_first_Sigmoid_layer net[0:2](X)[0:9, 1, :, :] d2l.show_images(x_first_Sigmoid_layer.reshape(9, 28, 28).cpu().detach(), 1, 9) x_second_Sigmoid_layer net[0:5](X)[0:9, 1, :, :] d2l.show_images(x_second_Sigmoid_layer.reshape(9, 10, 10).cpu().detach(), 1, 9) d2l.plt.show()​ ​
http://www.hkea.cn/news/14305905/

相关文章:

  • 专业网站开发设计做外贸一般用什么网站
  • 网站的常用技术有哪些小型购物网站
  • 网站开发语言查看云南建设工程招投标信息网
  • 汽车网站建设论文定制建网站
  • 婚纱摄影在哪个网站找wordpress插件后端页面
  • 做网站需要记哪些代码做网页和网站一样吗
  • 鹤壁网站seo优化上海市城市建设工程学校网站
  • 建立企业网站多少钱网站建设公司的未来
  • asp网页制作教程南宁网站推广优化
  • 做购物网站 国外服务器长春网站建设SEO优化营销
  • 网站收录查询方法wordpress制作页面
  • 做网站技巧长页在线制作网站
  • 网站制作过程ui界面设计案例
  • 手机做网站怎么做深圳哪个做网站好优化
  • 外国设计网站芜湖网络科技有限公司
  • 设计合理的网站网页归档合肥网络推广营销
  • 请打开网站网站建设京icp备
  • 帮你做决定的网站中华南大街网站建设
  • 中国建设企业网站网站底部图片
  • 自己公司的网站怎么编辑器怎么看网站的收录
  • .net网站 还原数据库备份做网站用的文本编辑器
  • 郑州网站开发公司名称大全杭州网站seo价格
  • 手机购买网站源码深圳制作网站建设的企业
  • 网站制作top线上引流线下推广方案
  • 常州网站建设培训外贸商城 网站建设
  • 有没有接活做的网站网站开发是做啥的
  • 网站内容建设出现的问题设计公司宣传文案
  • 刷网站seo排名软件有备案号的网站是公司的吗
  • 有没有做彩票直播的网站网站风格分类有哪些
  • 重庆忠县网站建设上海都市建筑设计有限公司