是否可以使用Keras创建模型而不使用Keras中的编译和拟合函数,使用Tensorflow训练模型?
答案 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