Python (Keras)TensorBoard回调是否适用于返回_状态为on的循环网络?

Python (Keras)TensorBoard回调是否适用于返回_状态为on的循环网络?,python,tensorflow,keras,Python,Tensorflow,Keras,我定义了一个循环网络,其return\u state设置为True: import numpy as np from tensorflow.python import keras data, targets = np.ones((4, 2, 3)), np.zeros((4, 2, 3)) input_shape = data.shape input_1 = keras.layers.Input(batch_shape=(None,)+input_shape[1:]) recurrent

我定义了一个循环网络,其
return\u state
设置为True:

import numpy as np
from tensorflow.python import keras

data, targets = np.ones((4, 2, 3)), np.zeros((4, 2, 3))

input_shape = data.shape

input_1 = keras.layers.Input(batch_shape=(None,)+input_shape[1:])

recurrent_1, _, state = keras.layers.LSTM(units=input_shape[-1],
                                          input_shape=input_shape[1:],
                                          return_sequences=True,
                                          return_state=True)(input_1)

model = keras.models.Model(inputs=[input_1], outputs=[recurrent_1])
model.compile(loss='mean_squared_error',
              optimizer='RMSprop',
              metrics=['accuracy'])

tensorboard_callback = keras.callbacks.TensorBoard(log_dir='/', histogram_freq=1, write_graph=True,
                                                   write_grads=True, write_images=False)

model.fit(data, targets, validation_split=0.25, callbacks=[tensorboard_callback])
fit()
调用失败,出现以下错误:

Traceback (most recent call last):
  File "/home/joshuaf/PycharmProjects/skyline/catkin_ws/src/learning/src/functional_recurrent_tensorboard.py", line 23, in <module>
    model.fit(data, targets, validation_split=0.25, callbacks=[tensorboard_callback])
  File "/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site-packages/tensorflow/python/keras/engine/training.py", line 1348, in fit
    validation_steps=validation_steps)
  File "/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site-packages/tensorflow/python/keras/engine/training_arrays.py", line 157, in fit_loop
    callbacks.set_model(callback_model)
  File "/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site-packages/tensorflow/python/keras/callbacks.py", line 70, in set_model
    callback.set_model(model)
  File "/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site-packages/tensorflow/python/keras/callbacks.py", line 762, in set_model
    tf_summary.histogram('{}_out'.format(layer.name), layer.output)
  File "/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site-packages/tensorflow/python/summary/summary.py", line 187, in histogram
    tag=tag, values=values, name=scope)
  File "/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site-packages/tensorflow/python/ops/gen_logging_ops.py", line 283, in histogram_summary
    "HistogramSummary", tag=tag, values=values, name=name)
  File "/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site-packages/tensorflow/python/framework/op_def_library.py", line 528, in _apply_op_helper
    (input_name, err))
ValueError: Tried to convert 'values' to a tensor and failed. Error: Shapes must be equal rank, but are 3 and 2
    From merging shape 0 with other shapes. for 'lstm_out/packed' (op: 'Pack') with input shapes: [?,2,3], [?,3], [?,3].
回溯(最近一次呼叫最后一次):
文件“/home/joshuaf/PycharmProjects/skyline/catkin_ws/src/learning/src/functional_returnal_tensorboard.py”,第23行
fit(数据、目标、验证\u分割=0.25,回调=[tensorboard\u回调])
文件“/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site packages/tensorflow/python/keras/engine/training.py”,第1348行
验证步骤=验证步骤)
文件“/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site packages/tensorflow/python/keras/engine/training_arrays.py”,第157行,在fit_循环中
callbacks.set\u模型(callback\u模型)
文件“/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site packages/tensorflow/python/keras/callbacks.py”,第70行,set_模型
callback.set_model(model)
set_模型中的文件“/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site packages/tensorflow/python/keras/callbacks.py”,第762行
tf_summary.histogram(“{}_out.”格式(layer.name),layer.output)
文件“/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site packages/tensorflow/python/summary/summary.py”,直方图中第187行
标记=标记,值=值,名称=范围)
文件“/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site packages/tensorflow/python/ops/gen_logging_ops.py”,第283行,在直方图摘要中
“HistorogramSummary”,标记=标记,值=值,名称=名称)
文件“/home/joshuaf/PycharmProjects/skyline/venv/local/lib/python2.7/site packages/tensorflow/python/framework/op_def_library.py”,第528行,在“应用”op_helper中
(输入_名称,错误))
ValueError:尝试将“值”转换为张量,但失败。错误:形状的秩必须相等,但为3和2
将形状0与其他形状合并。对于具有以下输入形状的“lstm_输出/打包”(op:“打包”):[?,2,3],?,3],?,3]。
我假设额外的两个形状是隐藏状态输出和单元状态,如这里所解释的

这是否意味着TensorBoard回调根本无法处理返回其状态的层?我使用的是Tensorflow 1.9和Keras 2.1.6