澳门博彩官网

转载  2018-04-14   作者:denny402   我要评论

这篇文章主要为大家详细介绍了Pytorch入门之mnist分类实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Pytorch入门之mnist分类的具体代码,供大家参考,具体内容如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'denny'
__time__ = '2017-9-9 9:03'
import torch
import torchvision
from torch.autograd import Variable
import torch.utils.data.dataloader as Data
train_data = torchvision.datasets.MNIST(
 './mnist', train=True, transform=torchvision.transforms.ToTensor(), download=True
)
test_data = torchvision.datasets.MNIST(
 './mnist', train=False, transform=torchvision.transforms.ToTensor()
)
print("train_data:", train_data.train_data.size())
print("train_labels:", train_data.train_labels.size())
print("test_data:", test_data.test_data.size())
train_loader = Data.DataLoader(dataset=train_data, batch_size=64, shuffle=True)
test_loader = Data.DataLoader(dataset=test_data, batch_size=64)

class Net(torch.nn.Module):
 def __init__(self):
 super(Net, self).__init__()
 self.conv1 = torch.nn.Sequential(
  torch.nn.Conv2d(1, 32, 3, 1, 1),
  torch.nn.ReLU(),
  torch.nn.MaxPool2d(2))
 self.conv2 = torch.nn.Sequential(
  torch.nn.Conv2d(32, 64, 3, 1, 1),
  torch.nn.ReLU(),
  torch.nn.MaxPool2d(2)
 )
 self.conv3 = torch.nn.Sequential(
  torch.nn.Conv2d(64, 64, 3, 1, 1),
  torch.nn.ReLU(),
  torch.nn.MaxPool2d(2)
 )
 self.dense = torch.nn.Sequential(
  torch.nn.Linear(64 * 3 * 3, 128),
  torch.nn.ReLU(),
  torch.nn.Linear(128, 10)
 )
 def forward(self, x):
 conv1_out = self.conv1(x)
 conv2_out = self.conv2(conv1_out)
 conv3_out = self.conv3(conv2_out)
 res = conv3_out.view(conv3_out.size(0), -1)
 out = self.dense(res)
 return out

model = Net()
print(model)
optimizer = torch.optim.Adam(model.parameters())
loss_func = torch.nn.CrossEntropyLoss()
for epoch in range(10):
 print('epoch {}'.format(epoch + 1))
 # training-----------------------------
 train_loss = 0.
 train_acc = 0.
 for batch_x, batch_y in train_loader:
 batch_x, batch_y = Variable(batch_x), Variable(batch_y)
 out = model(batch_x)
 loss = loss_func(out, batch_y)
 train_loss += loss.data[0]
 pred = torch.max(out, 1)[1]
 train_correct = (pred == batch_y).sum()
 train_acc += train_correct.data[0]
 optimizer.zero_grad()
 loss.backward()
 optimizer.step()
 print('Train Loss: {:.6f}, Acc: {:.6f}'.format(train_loss / (len(
 train_data)), train_acc / (len(train_data))))
 # evaluation--------------------------------
 model.eval()
 eval_loss = 0.
 eval_acc = 0.
 for batch_x, batch_y in test_loader:
 batch_x, batch_y = Variable(batch_x, volatile=True), Variable(batch_y, volatile=True)
 out = model(batch_x)
 loss = loss_func(out, batch_y)
 eval_loss += loss.data[0]
 pred = torch.max(out, 1)[1]
 num_correct = (pred == batch_y).sum()
 eval_acc += num_correct.data[0]
 print('Test Loss: {:.6f}, Acc: {:.6f}'.format(eval_loss / (len(
 test_data)), eval_acc / (len(test_data))))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Django admin实现图书管理系统菜鸟级教程完整实例

    这篇文章主要介绍了Django admin实现图书管理系统菜鸟级教程完整实例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python编程中对super函数的正确理解和用法解析

    Python编程中对super函数的正确理解和用法解析

    可能有人会想到,Python中既然可以直接通过父类名调用父类方法为什么还会存在super函数?其实,很多人对Python中的super函数的认识存在误区,本文我们就带来在Python编程中对super函数的正确理解和用法解析
    2016-07-07
  • Python判断文件和字符串编码类型的实例

    Python判断文件和字符串编码类型的实例

    下面小编就为大家分享一篇Python判断文件和字符串编码类型的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Python基于回溯法子集树模板解决旅行商问题(TSP)实例

    Python基于回溯法子集树模板解决旅行商问题(TSP)实例

    这篇文章主要介绍了Python基于回溯法子集树模板解决旅行商问题(TSP),简单描述了旅行商问题并结合实例形式分析了Python使用回溯法子集树模板解决旅行商问题的相关实现步骤与操作技巧,需要的朋友可以参考下
    2017-09-09
  • windows 10下安装搭建django1.10.3和Apache2.4的方法

    windows 10下安装搭建django1.10.3和Apache2.4的方法

    最近发现很多教程都是在linux上搭建,windows上似乎天生不太适合,但是我还是愿意试试这个坑。下面这篇文章主要给大家介绍了在windows 10系统下安装搭建django1.10.3和Apache2.4的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-04-04
  • Python深入学习之特殊方法与多范式

    Python深入学习之特殊方法与多范式

    这篇文章主要介绍了Python深入学习之特殊方法与多范式,特殊方法就像PHP里的魔术方法,多范式是指可以用面向对象、面向过程、函数式、声明式等方式编写程序,需要的朋友可以参考下
    2014-08-08
  • python 第三方库的安装及pip的使用详解

    python 第三方库的安装及pip的使用详解

    下面小编就为大家带来一篇python 第三方库的安装及pip的使用详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Python二叉搜索树与双向链表转换实现方法

    Python二叉搜索树与双向链表转换实现方法

    这篇文章主要介绍了Python二叉搜索树与双向链表转换实现方法,涉及Python二叉搜索树的定义、实现以及双向链表的转换技巧,需要的朋友可以参考下
    2016-04-04
  • python 捕获 shell/bash 脚本的输出结果实例

    python 捕获 shell/bash 脚本的输出结果实例

    下面小编就为大家带来一篇python 捕获 shell/bash 脚本的输出结果实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 基于Python __dict__与dir()的区别详解

    基于Python __dict__与dir()的区别详解

    下面小编就为大家带来一篇基于Python __dict__与dir()的区别详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10

最新评论