莫凡Python 3
莫凡Python 3

CNN 卷积神经网络
参考资料
- https://morvanzhou.github.io/tutorials/machine-learning/keras/2-3-CNN/
- https://keras-cn.readthedocs.io/
数据预处理
- X_train = X_train.reshape(-1, 1, 28 , 28)
这种处理我不是很理解
建立模型
- batch_input_shape=(None, 1, 28, 28)
shape : 形状
None 可以参考: https://blog.csdn.net/qq_36490364/article/details/83594271
代码
# -*- coding: utf-8 -*-
""" CNN 卷积神经网络 """
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import numpy as np
np.random.seed(1337) # for reproducibility
from keras.models import Sequential
from keras.layers import Dense, Activation, Convolution2D, MaxPooling2D, Flatten
import matplotlib.pyplot as plt
from keras.utils import np_utils
from keras.optimizers import Adam
from keras.datasets import mnist
from keras import backend
backend.set_image_data_format('channels_first')
# %% 数据预处理
(X_train, Y_train), (X_test, Y_test) = mnist.load_data()
X_train = X_train.reshape(-1, 1, 28 , 28)/255.
X_test = X_test.reshape(-1, 1,28, 28)/255.
Y_train = np_utils.to_categorical(Y_train, num_classes=10)
Y_test = np_utils.to_categorical(Y_test, num_classes=10)
# %% 建立模型
model = Sequential()
model.add(
Convolution2D(
batch_input_shape=(None, 1, 28, 28),
filters=32,
kernel_size=5,
strides=1,
padding='same'
)
)
model.add(Activation('relu'))
model.add(
MaxPooling2D(
pool_size=2,
strides=2,
padding='same',
)
)
model.add(Activation('relu'))
model.add(Convolution2D(64, 5, strides=1, padding='same'))
model.add(Activation('relu'))
model.add(MaxPooling2D(2,2,'same'))
model.add(Flatten())
model.add(Dense(1024))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))
adam = Adam(lr=1e-4)
model.compile(optimizer=adam, loss='categorical_crossentropy', metrics=['accuracy'])
# %% 训练
print('Training ------------')
model.fit(X_train,Y_train,batch_size=64)
print('\nTesting ------------')
loss, accuracy = model.evaluate(X_test, Y_test)
# %% 评估
print('\ntest loss: ', loss)
print('\ntest accuracy: ', accuracy)
莫凡Python 3的更多相关文章
- 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新
python 中好用的函数,random.sample等,持续更新 random.sample random.sample的函数原型为:random.sample(sequence, k),从指定序列 ...
- #017 python实验课第五周
总结写在最前面: 1.语法还是不会...(每周强制留的C语言一百题都没空写PS.团委诶....)都是现查现用(莫凡Python这个网站特别好用知识点一个视频就一分钟B站的播放器没广告,用啥学啥,还配有 ...
- Ubuntu环境下安装CUDA9.0
前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu16.04和Ubuntu17.04两个版本,如下图所示(最下面的安装方式我们选择第一个,即runfile方式): ...
- Pytorch实现卷积神经网络CNN
Pytorch是torch的Python版本,对TensorFlow造成很大的冲击,TensorFlow无疑是最流行的,但是Pytorch号称在诸多性能上要优于TensorFlow,比如在RNN的训练 ...
- pytorch构建优化器
这是莫凡python学习笔记. 1.构造数据,可以可视化看看数据样子 import torch import torch.utils.data as Data import torch.nn.func ...
- pytorch批训练数据构造
这是对莫凡python的学习笔记. 1.创建数据 import torch import torch.utils.data as Data BATCH_SIZE = 8 x = torch.linsp ...
- pytorch搭建网络,保存参数,恢复参数
这是看过莫凡python的学习笔记. 搭建网络,两种方式 (1)建立Sequential对象 import torch net = torch.nn.Sequential( torch.nn.Line ...
- 关于深度学习框架 TensorFlow、Theano 和 Keras
[TensorFlow] ——( https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/) 1.TensorFlow是啥 ...
- 【优质blog、网址】置顶
一.大公司等技术blog: blog1: http://blog.csdn.net/mfcing/article/details/51577173 blog2: http://blog.csdn. ...
- Ubuntu 16.04 上安装 CUDA 9.0 详细教程
https://blog.csdn.net/QLULIBIN/article/details/78714596 前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu1 ...
随机推荐
- Linux上安装jdk Tomcat mysql redis等
1.安装JDk 1.1这里使用xshell中xfxp进行文件的上传,将jdk二进制包上传到Linux服务器上 下载地址:https://www.oracle.com/java/technologie ...
- ASP.NET6 + Mongo + OData
准备工作 Docker环境 Mongo数据库 配置Mongo数据库 ASP.NET6 集成Mongo 安装MongoDB.Driver { "Logging": { "L ...
- 【Oculus Interaction SDK】(七)使用射线进行交互(物体 & UI)
前言 这篇文章是[Oculus Interaction SDK]系列的一部分,如果发现有对不上的对方,可以回去翻看我之前发布的文章,或在评论区留言.如果文章的内容已经不适用于新版本了,也可以直接联系我 ...
- vivo官网App模块化开发方案-ModularDevTool
作者:vivo 互联网客户端团队- Wang Zhenyu 本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法. 说明:本工具基于vivo互联网客户端 ...
- 基础雷达图(radar)
基础雷达图 代码 var chartDom=document.getElementById("radar"); var myChart=echarts.init(chartDom) ...
- osx使用alfred集成有道查词
概述 使用 mac 的同学应该经常会使用 alfred 这个软件, 主要能随时能够通过一个快键键打开查询窗口, 方便的搜索或打开软件, 文件等等, 同时也可以集成脚本方便实现其它的功能. 在日常使用的 ...
- JZOJ 3448.公路维护
\(\text{Problem}\) 1.询问区间最小值是否大于 \(0\) 2.区间加(可正可负) 3.区间取 \(\max\) 如果某个数经过操作后小于等于 \(0\),以后的操作就不会再影响这个 ...
- 深入理解Spring的Bean定义对象BeanDefinition-面试重点
Spring注解这篇文章中讲到了Spring的组件,组件加载到Spring容器中也就是Spring容器中的Bean对象,想要更深理解Spring中的Bean对象,那对这个BeanDefinition一 ...
- 从0搭建Vue3组件库(四): 如何开发一个组件
本篇文章将介绍如何在组件库中开发一个组件,其中包括 如何本地实时调试组件 如何让组件库支持全局引入 如何在 setup 语法糖下给组件命名 如何开发一个组件 目录结构 在packages目录下新建co ...
- Python (进阶 第二部)
目录 函数 闭包 匿名函数 迭代器 高阶函数 推导式 递归函数 函数 函数的定义: 功能( 包括一部分代码,实现某种功能,达成某个目的) 函数的特点: 函数可以反复调用 ,提高代码的复用性,提高开 ...