George V Jose
George V Jose

Reputation: 312

How can i create a model in Keras and train it using Tensorflow?

Is it possible to create a model with Keras and without using compile and fit functions in Keras, use Tensorflow to train the model?

Upvotes: 1

Views: 1269

Answers (2)

Tu Bui
Tu Bui

Reputation: 1692

You can use keras to define a complicated graph:

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)

Then use tensorflow to config complicated optimization and training procedure:

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]})

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

Upvotes: 1

Jakub Bartczuk
Jakub Bartczuk

Reputation: 2378

Sure. From Keras documentation:

Useful attributes of Model

  • model.layers is a flattened list of the layers comprising the model graph.
  • model.inputs is the list of input tensors.
  • model.outputs is the list of output tensors.

If you use Tensorflow backend, inputs and outputs are Tensorflow tensors, so you can use them without using Keras.

Upvotes: 1

Related Questions