人工智能实践:Tensorflow笔记 Class 5:卷积神经网络
目录
5.1 卷积计算过程
5.2 感受野
5.3 全零填充
5.4 TF描述卷积计算层
5.5 批标准化
5.6 池化
5.7 舍弃
5.8 卷积神经网络
5.9 CIFAR10数据集
5.10 卷积神经网络搭建
5.11 LeNet
5.12 AlexNet
5.13 VGGNet
5.14 InceptionNet
5.15 ResNet
5.1 卷积计算过程
输入特征图的深度,决定了当前层卷积核的深度
当前层卷积核的个数,决定了当前层输出特征图的深度
5.2 感受野
卷积神经网络各输出特征图中的每个像素点,在原始输入图片上映射区域的大小
若输入特征图宽、高为x,卷积步长为1,当x>10时,两层3*3卷积核,优于一层5*5卷积核。
5.3 全零填充
希望卷积运算保持输入特征图的尺寸不变
5.4 TF描述卷积计算层
5.5 批标准化
批标准化位于激活层之前,卷积层之后
5.6 池化
池化用于减少特征数据量。
最大化池化可以提取图片纹理,均值池化可保留背景特征
5.7 舍弃
在神经网络训练时,将一部分神经元按照一定概率从神经网络中暂时舍弃。神经网络使用时,被舍弃的神经元恢复链接。
5.8 卷积神经网络
借助卷积核提取特征后,送入全连接网络
5.9 CIFAR10数据集
5.10 卷积神经网络搭建
利用卷积神经网络训练cifar10数据集,搭建一个一层卷积、两层全连接的网络,使用6个5*5的卷积核,过2*2的池化核,池化步长为2,过128个神经元的全连接层,最后过10个神经元的全连接层
import tensorflow as tf
import os
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.python.ops.gen_batch_ops import Batch
from tensorflow.keras import Model
from tensorflow.keras.layers import Conv2D,BatchNormalization,Activation,MaxPool2D,Dropout,Flatten,Dense
np.set_printoptions(threshold=np.inf)cifar10=tf.keras.datasets.cifar10
(x_train,y_train),(x_test,y_test)=cifar10.load_data() #数据导入
x_train,x_test=x_train/255.0,x_test/255.0 #归一化class Baseline(Model):def __init__(self):super(Baseline,self).__init__()self.c1=Conv2D(filters=6,kernel_size=(5,5),padding='same') #卷积层self.b1=BatchNormalization()self.a1=Activation('relu')self.p1=MaxPool2D(pool_size=(2,2),strides=2,padding='same') #池化层self.d1=Dropout(0,2)self.flatten=Flatten()self.f1=Dense(128,activation='relu')self.d2=Dropout(0,2)self.f2=Dense(10,activation='softmax')def call(self,x):x=self.c1(x)x=self.b1(x)x=self.a1(x)x=self.p1(x)x=self.d1(x)x=self.flatten(x)x=self.f1(x)x=self.d2(x)y=self.f2(x)return y
model=Baseline()model.compile(optimizer='adam',loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),metrics=['sparse_categorical_accuracy'])
checkpoint_save_path="./checkpoint/Baseline.ckpt"
if os.path.exists(checkpoint_save_path+'.index'):print("load the model")model.load_weights(checkpoint_save_path)cp_callback=tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_save_path,save_weights_only=True,save_best_only=True)
history=model.fit(x_train,y_train,batch_size=32,epochs=5,validation_data=(x_test,y_test),validation_freq=1,callbacks=[cp_callback])model.summary()file=open('./weights.txt','w')
for v in model.trainable_variables:file.write(str(v.name)+'\n')file.write(str(v.shape)+'\n')file.write(str(v.numpy())+'\n')
file.close()
5.11 LeNet
5.12 AlexNet
5.13 VGGNet
5.14 InceptionNet
5.15 ResNet
·网络层数
人工智能实践:Tensorflow笔记 Class 5:卷积神经网络相关推荐
- 深度学习笔记其五:卷积神经网络和PYTORCH
深度学习笔记其五:卷积神经网络和PYTORCH 1. 从全连接层到卷积 1.1 不变性 1.2 多层感知机的限制 1.2.1 平移不变性 1.2.2 局部性 1.3 卷积 1.4 "沃尔多在 ...
- tensorflow预定义经典卷积神经网络和数据集tf.keras.applications
自己开发了一个股票软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html 1.1 tensorflow预定义经 ...
- MindSpore Quantum 量子计算编程与实践:轻松上手量子卷积神经网络
MindSpore Quantum 量子计算编程与实践:轻松上手量子卷积神经网络 在本文中,我们将介绍一些量子信息的基础知识 和 MindQuantum 量子计算框架的基本用法,最后基于 MindQu ...
- CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用
CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用 目录 基于tensorflow框架采用CNN(改进 ...
- 【拔刀吧 TensorFlow】TensorFlow学习笔记八——何为卷积神经网络
TensorFlow直接以官方手册作为切入点,在趣味性和快速性上优势很大,但是对于学习深入理论的理解产生了巨大的阻碍. 在"深入MNIST"这一节中,遇到了卷积神经网络的构建,涉及 ...
- 什么是人工智能?——TensorFlow笔记一
基本概念: 什么是人工智能 强人工智能(BOTTOM-UP AI) 弱人工智能(TOP-DOWN AI) 人工智能研究价值: 重要人物: 消费级人工智能产品: 国外 国内 人工智能先锋: 什么是人工智 ...
- 【记录】本科毕设:基于树莓派的智能小车设计(使用Tensorflow + Keras 搭建CNN卷积神经网络 使用端到端的学习方法训练CNN)
0 申明 这是本人2020年的本科毕业设计,内容多为毕设论文和答辩内容中挑选.最初的灵感来自于早前看过的一些项目(抱歉时间久远,只记录了这一个,见下),才让我萌生了做个机电(小车动力与驱动)和控制(树 ...
- TensorFlow(7)卷积神经网络实战(1)(可视化)
目录 基础理论 卷积 卷积核与过滤器的区别 一.获取数据集 二.设定数据集大小.归一化 三.构建卷积神经网络 四.编译&&训练 五.模型评估 六.可视化 1.创建plt图 2.获取各卷 ...
- 深度学习之利用TensorFlow实现简单的卷积神经网络(MNIST数据集)
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习 ...
- Tensorflow实例:(卷积神经网络)LeNet-5模型
通过卷积层.池化层等结构的任意组合得到的神经网络有无限多种,怎样的神经网络更有可能解决真实的图像处理问题?本文通过LeNet-5模型,将给出卷积神经网络结构设计的一个通用模式. LeNet-5模型 L ...
最新文章
- YII2 models非常好用的控制输出数据【重写Fields】
- 如何用php弄导航栏,怎样用PHP来给网页做导航栏
- Struts2_day02--封装数据到集合里面
- Linux C 数据结构—-循环链表
- Origin2017绘制3D饼状图 去掉指定图例
- Path(0)贝塞尔曲线
- 正态分布初始化 torch.nn.Embedding.weight()与torch.nn.init.normal()的验证对比
- 如何提高Android系统Aututu benchmark跑分
- 中学数学证明所有自然数和为-1/12
- java服务写在哪里_【Java学习笔记】如何写一个简单的Web Service
- js实现兼容的本地化存储方案
- 无关业务:少年得到,产品创新工作坊的复盘
- 人脸识别智能门禁的安全性
- View的测量规则以及三大方法流程
- Kali Linxu中打开Apache服务
- MPSK通信系统的Monte Carl仿真(matlab实现,附源码)
- 注册ArcGIS Online账号||免费使用21天(保姆级)
- Spring整合JMS(二)——消息监听器
- linux学习笔记,简单的粗暴使用教学
- Matlab------------怎么取一个复数的实部和虚部