小编obh*_*obh的帖子

使用tf.keras.Model.fit进行训练时如何将自定义摘要添加到张量板

我正在将模型训练为:

with tf.Graph().as_default():
        with tf.Session(config=tf.ConfigProto(allow_soft_placement = True)) as sess:
                K.set_session(sess)
                tf.train.create_global_step()
                #with tf.device('/gpu:0:'):
                m = GAReader.Model(nlayers, data.vocab_size, data.num_chars, W_init,
                        nhidden, embed_dim, dropout, train_emb,
                        char_dim, use_feat, gating_fn, words).build_network()
                m.compile(optimizer=tf.train.AdamOptimizer(0.01),
                          loss=tf.keras.losses.categorical_crossentropy,
                          metrics=[tf.keras.metrics.categorical_accuracy])
                tensorboard = TensorBoardCustom(log_dir="logs", sess=sess)
                m.fit_generator(generator=batch_loader_train, steps_per_epoch=len(batch_loader_train.batch_pool), epochs=100, callbacks=[tensorboard])
Run Code Online (Sandbox Code Playgroud)

我定义了一个自定义回调,将keras.callbacks.Tensorboard扩展为:

class TensorBoardCustom(TensorBoard):

    def __init__(self, log_dir, sess, **kwargs):
        super(TensorBoardCustom, self).__init__(log_dir, **kwargs)
        self.sess = sess

    def on_batch_end(self, batch, logs={}):
        summary = tf.summary.merge_all()
        writer = tf.summary.FileWriter(self.log_dir)
        s = self.sess.run(summary)
        writer.add_summary(s, batch)
        writer.close()
        super(TensorBoardCustom, self).on_batch_end(batch, logs)
Run Code Online (Sandbox Code Playgroud)

我添加一个新的摘要为:

l_docin = tf.keras.layers.Input(shape=(None,))
with tf.name_scope('summaries'):
            table = tf.contrib.lookup.index_to_string_table_from_tensor( …
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras tensorflow

5
推荐指数
1
解决办法
564
查看次数

标签 统计

keras ×1

machine-learning ×1

python ×1

tensorflow ×1