Каков пример того, как использовать TensorFlow TFRecord с моделью Keras и tf.session.run() при сохранении набора данных в тензорах с обработчиками очередей?
Ниже приведен фрагмент кода, который работает, но требует следующих улучшений:
- Используйте API модели
- указать вход()
- Загрузить набор данных из TFRecord
- Запустите параллельный набор данных (например, с помощью queuerunner)
Вот фрагмент, есть несколько строк TODO, указывающих, что нужно:
from keras.models import Model
import tensorflow as tf
from keras import backend as K
from keras.layers import Dense, Input
from keras.objectives import categorical_crossentropy
from tensorflow.examples.tutorials.mnist import input_data
sess = tf.Session()
K.set_session(sess)
# Can this be done more efficiently than placeholders w/ TFRecords?
img = tf.placeholder(tf.float32, shape=(None, 784))
labels = tf.placeholder(tf.float32, shape=(None, 10))
# TODO: Use Input()
x = Dense(128, activation='relu')(img)
x = Dense(128, activation='relu')(x)
preds = Dense(10, activation='softmax')(x)
# TODO: Construct model = Model(input=inputs, output=preds)
loss = tf.reduce_mean(categorical_crossentropy(labels, preds))
# TODO: handle TFRecord data, is it the same?
mnist_data = input_data.read_data_sets('MNIST_data', one_hot=True)
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
sess.run(tf.global_variables_initializer())
# TODO remove default, add queuerunner
with sess.as_default():
for i in range(1000):
batch = mnist_data.train.next_batch(50)
train_step.run(feed_dict={img: batch[0],
labels: batch[1]})
print(loss.eval(feed_dict={img: mnist_data.test.images,
labels: mnist_data.test.labels}))
Почему этот вопрос актуален?
- Для высокопроизводительных тренировок без возврата к питону
- Керас скоро станет частью tenorflow
- Продемонстрируйте, как классы Keras Model() могут правильно принимать тензоры для входных данных.
Вот некоторая стартовая информация для примера проблемы семантической сегментации:
- Пример unet Keras - модель unet.py, предназначенная для семантической сегментации.
- Керас + сообщение в блоге Tensorflow
- Попытка запустить модель unet во время сеанса TF с TFRecords и моделью Keras (не работает)
- Код для создания TFRecords: tf_records.py
- Попытка запустить модель unet, сеанс tf с TFRecords и моделью Keras находится в densenet_fcn.py (не работает)