卷积神经网络:Keras深度学习

全文引用:
卷积神经网络之Keras深度学习

卷积神经网络之优缺点
优点
  • 共享卷积核,对高维数据处理无压力
  • 无需手动选取特征,训练好权重,即得特征分类效果好
缺点
  • 需要调参,需要大样本量,训练最好要GPU
  • 物理含义不明确(也就说,我们并不知道没个卷积层到底提取到的是什么特征,而且神经网络本身就是一种难以解释的“黑箱模型”)

卷积神经网络的常用框架
Caffe
  • 源于Berkeley的主流CV工具包,支持 C++,python,matlab
  • Model Zoo中有大量预训练好的模型供使用
Torch
  • Facebook用的卷积神经网络工具包
  • 通过时域卷积的本地接口,使用非常直观
  • 定义新网络层简单
TensorFlow
  • Google的深度学习框架
  • TensorBoard可视化很方便
  • 数据和模型并行化好,速度快

keras的模型结构:
在这里插入图片描述
Keras实现卷积神经网络:
在这里插入图片描述

from keras.layers import Conv2D, MaxPooling2D
from tensorflow.examples.tutorials.mnist import input_data
from keras.layers import Dense,Dropout
from keras.models import Sequential
from keras.optimizers import Adam,SGD
from keras.utils import plot_model
# MNIST数据存放的路径
file = "MNIST"

# 导入数据
mnist = input_data.read_data_sets(file, one_hot=True)

X_train = mnist.train.images
y_train = mnist.train.labels
X_test = mnist.test.images
y_test = mnist.test.labels

#定义模型网络结构
model = Sequential()
model.add(Dense(units=256,input_dim=784,activation='relu'))
model.add(Dropout(0.5)) #防止过拟合
model.add(Dense(units=128,activation='relu'))

model.add(Dropout(0.5))
model.add(Dense(units=10,activation='softmax'))

adam = Adam(lr=0.001)  #使用Adam优化器
model.compile(optimizer=adam,loss="categorical_crossentropy",metrics=['accuracy'])

model.summary() #输出网络结构
plot_model(model,to_file="mnist_model.png",show_shapes=True)  #保存网络结构到图片文件

model.fit(X_train,y_train,batch_size=50,epochs=50)  #训练网络

loss,accuracy = model.evaluate(X_test,y_test)   #使用测试集评估效果
print(loss,accuracy)

卷积神经网络结构图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值