keras的简单介绍

Keras和TensorFlow

keras是一个用Python写的深度学习API,它运行在机器学习平台TensorFlow上。换句话说,Keras是接口(Interface),TensorFlow是平台(Platform)。

使用keras,需要导入一些基本的包:

import numpy as np
import tensorflow as tf
from tensorflow import keras
# TensorFlow2.0以后采用tensorflow.keras
from tensorflow.keras import layers

Keras的核心数据结构是layers(层)和models(模型)。

最简单的model是Sequential model(顺序模型),Sequential是layers的线性堆叠。构建一个Sequential model:

from tensorflow.keras.models import Sequential
model = Sequential()

使用.add()来向model中堆叠layers,keras的layers有(常用):核心层Core layers, 卷积层Convolution layers, 池化层Pooling layers, 正则化层Regularization layers, 激活层Activation layers等等。

from tensorflow.keras.layers import Dense
# keras的core layers包括Dense layer, Activation layer, Embedding layer, Masking layer, Lambda layer
# 这里用Dense layer

model.add(Dense(units=64, activation='relu'))
model.add(Dense(units=10, activation='softmax'))

设置好model后,就可以使用.compile()来配置学习过程:

model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics='accuracy'])

使用.fit()来分批迭代训练数据:

# x_train and y_train are Numpy arrays --just like in the Scikit-Learn API.
model.fit(x_train, y_train, epochs=5, batch_size=32)

使用.evaluate()来评估测试loss和metrics:

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

使用.predict()来预测新的结果

classes = model.predict(x_test, batch_size=128)

构建好的model可以使用.summary()来查看其层次结构

'''
model.summary() #之前必须要执行.build或者.fit,因为不交代input无法显示模型的层次结构
model.build((None,28, 28))
model.fit(x_train, y_train, epochs=5, batch_size=32)
'''
model.summary()

上述model执行.summary完毕后的效果如下图:
model.summary()
也可以将model的层次结构导出为图片:

keras.utils.plot_model(model, "my_first_model.png")
# show_shapes=True表示显示input和output大小
keras.utils.plot_model(model, "my_first_model_with_shape_info.png", show_shapes=True)


show_shapes=True

总结

我也是初学者,我自己也创造不出来一个CNN或者其他复杂的model,最常用的做法是根据现有的别人已经训练好的模型,再修改为适合自己的模型就足够了。

如何做到修改为适合自己的模型,这就需要判断自己的model需要哪些layer,input和output数据大小是多少,迭代次数等等。

我之前跑过一个手势识别的代码,其模型的建立只有几行代码,而大量的步骤是数据的预处理,所以如何对数据进行预处理才是深度学习的难点。

模型的建立
效果如下:
在这里插入图片描述

一起学深度学习,微信公众号会记录我学习keras的过程,不只是学习笔记,还会写一些自己当程序员的感悟和分享。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值