虽然通过返回值的方式已经可以实现大部分的神经网络模型,然而 KerasAPI 还存在两大问题。第 一,原生态 KerasAPI 对训练数据的处理流程支持得不太好, 基本上需要一次性将数据全部加载到内存。第 二,原生态 KerasAPI 无法支持分布式训练。为了解决这两个问题, Keras 提供了 种与原生态 TensorFlow 结合得更加紧 的方式 以下代码显 了如何将Keras 和原生态 TensorFlow API 联合起来解决 MNIST 问题。
1、模型定义
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist_data = input_data.read_data_sets('../../datasets/MNIST_data', one_hot=True) # 通过TensorFlow中的placeholder定义输入。 x = tf.placeholder(tf.float32, shape=(None, 784)) y_ = tf.placeholder(tf.float32, shape=(None, 10)) net = tf.keras.layers.Dense(500, activation='relu')(x) y = tf.keras.layers.Dense(10, activation='softmax')(net) acc_value = tf.reduce_mean( tf.keras.metrics.categorical_accuracy(y_, y)) loss = tf.reduce_mean(tf.keras.losses.categorical_crossentropy(y_, y)) train_step = tf.train.GradientDescentOptimizer(0.5).minimize(loss)</