如何在Keras中创建模型并使用Tensorflow进行训练?

时间:2018-02-22 07:58:52

标签: tensorflow neural-network deep-learning keras

是否可以使用Keras创建模型而不使用Keras中的编译和拟合函数,使用Tensorflow训练模型?

2 个答案:

答案 0 :(得分:1)

不确定。来自Keras documentation

  

Model

的有用属性      
      
  • model.layers是包含模型图的图层的展平列表。
  •   
  • model.inputs是输入张量列表。
  •   
  • model.outputs是输出张量列表。
  •   

如果您使用Tensorflow后端,输入和输出是Tensorflow张量,因此您可以在不使用Keras的情况下使用它们。

答案 1 :(得分:0)

您可以使用keras定义复杂的图形:

import tensorflow as tf
sess = tf.Session()
from keras import backend as K
K.set_session(sess)
from keras.layers import Dense
from keras.objectives import categorical_crossentropy

img = Input(shape=(784,))
labels = Input(shape=(10,)) #one-hot vector
x = Dense(128, activation='relu')(img)
x = Dense(128, activation='relu')(x)
preds = Dense(10, activation='softmax')(x)

然后使用tensorflow配置复杂的优化和训练过程:

loss = tf.reduce_mean(categorical_crossentropy(labels, preds))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
init_op = tf.global_variables_initializer()
sess.run(init_op)
# Run training loop
with sess.as_default():
    for i in range(100):
        batch = mnist_data.train.next_batch(50)
        train_step.run(feed_dict={img: batch[0],
                                  labels: batch[1]})

参考:https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html