- TensorFlow 教程
- TensorFlow - 主页
- TensorFlow - 简介
- TensorFlow - 安装
- 了解人工智能
- 数学基础
- 机器学习与深度学习
- TensorFlow - 基础知识
- 卷积神经网络
- 循环神经网络
- TensorBoard 可视化
- TensorFlow - 词嵌入
- 单层感知器
- TensorFlow - 线性回归
- TFLearn 及其安装
- CNN 和 RNN 区别
- TensorFlow - Keras
- TensorFlow - 分布式计算
- TensorFlow - 导出
- 多层感知器学习
- 感知器的隐藏层
- TensorFlow - 优化器
- TensorFlow - 异或实现
- 梯度下降优化
- TensorFlow - 形成图
- 使用 TensorFlow 进行图像识别
- 神经网络训练的建议
- TensorFlow 有用资源
- TensorFlow - 快速指南
- TensorFlow - 有用的资源
- TensorFlow - 讨论
TensorFlow - Keras
Keras 是一个紧凑、易于学习的高级 Python 库,运行在 TensorFlow 框架之上。它的重点是理解深度学习技术,例如为维护形状和数学细节概念的神经网络创建层。自由作品的创建可以有以下两种类型 -
- 顺序API
- 功能性API
考虑以下八个步骤在 Keras 中创建深度学习模型 -
- 加载数据
- 预处理加载的数据
- 型号定义
- 编译模型
- 适合指定型号
- 评价一下
- 做出所需的预测
- 保存模型
我们将使用 Jupyter Notebook 来执行和显示输出,如下所示 -
步骤 1 - 首先加载数据并对加载的数据进行预处理以执行深度学习模型。
import warnings warnings.filterwarnings('ignore') import numpy as np np.random.seed(123) # for reproducibility from keras.models import Sequential from keras.layers import Flatten, MaxPool2D, Conv2D, Dense, Reshape, Dropout from keras.utils import np_utils Using TensorFlow backend. from keras.datasets import mnist # Load pre-shuffled MNIST data into train and test sets (X_train, y_train), (X_test, y_test) = mnist.load_data() X_train = X_train.reshape(X_train.shape[0], 28, 28, 1) X_test = X_test.reshape(X_test.shape[0], 28, 28, 1) X_train = X_train.astype('float32') X_test = X_test.astype('float32') X_train /= 255 X_test /= 255 Y_train = np_utils.to_categorical(y_train, 10) Y_test = np_utils.to_categorical(y_test, 10)
此步骤可以定义为“导入库和模块”,这意味着所有库和模块都作为初始步骤导入。
步骤 2 - 在这一步中,我们将定义模型架构 -
model = Sequential() model.add(Conv2D(32, 3, 3, activation = 'relu', input_shape = (28,28,1))) model.add(Conv2D(32, 3, 3, activation = 'relu')) model.add(MaxPool2D(pool_size = (2,2))) model.add(Dropout(0.25)) model.add(Flatten()) model.add(Dense(128, activation = 'relu')) model.add(Dropout(0.5)) model.add(Dense(10, activation = 'softmax'))
步骤 3 - 现在让我们编译指定的模型 -
model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy'])
步骤 4 - 我们现在将使用训练数据拟合模型 -
model.fit(X_train, Y_train, batch_size = 32, epochs = 10, verbose = 1)
创建的迭代的输出如下 -
Epoch 1/10 60000/60000 [==============================] - 65s - loss: 0.2124 - acc: 0.9345 Epoch 2/10 60000/60000 [==============================] - 62s - loss: 0.0893 - acc: 0.9740 Epoch 3/10 60000/60000 [==============================] - 58s - loss: 0.0665 - acc: 0.9802 Epoch 4/10 60000/60000 [==============================] - 62s - loss: 0.0571 - acc: 0.9830 Epoch 5/10 60000/60000 [==============================] - 62s - loss: 0.0474 - acc: 0.9855 Epoch 6/10 60000/60000 [==============================] - 59s - loss: 0.0416 - acc: 0.9871 Epoch 7/10 60000/60000 [==============================] - 61s - loss: 0.0380 - acc: 0.9877 Epoch 8/10 60000/60000 [==============================] - 63s - loss: 0.0333 - acc: 0.9895 Epoch 9/10 60000/60000 [==============================] - 64s - loss: 0.0325 - acc: 0.9898 Epoch 10/10 60000/60000 [==============================] - 60s - loss: 0.0284 - acc: 0.9910