Почему керас среднего уровня выходного тензора имеет форму (?,?) - PullRequest
0 голосов
/ 25 июня 2018

Я загрузил модель keras и использовал ее средний вывод следующим образом:

pretrain_model = load_model(path)
model = Model(inputs=pretrain_model.input, outputs=pretrain_model.layers[-2].output)

Когда я бегу:

>>model.output
<tf.Tensor 'pretrain_variable/dropout_2/cond/Merge:0' shape=(?, ?) dtype=float32>
>>model.output_shape
(None, 2000)

Это влияет на мой следующий шаг:

input = tf.placeholder(tf.float32,shape=(None,X_all.shape[1],X_all.shape[2]),name='X')
pretrain_output = pretrain_model(input) # pretrain_output shape should be none*2000, however it is none*none
output_y = Dense(units=y.shape[1])(pretrain_output) # this works
output_y = tf.keras.layers.Dense(units=y.shape[1])(pretrain_output) # won't work, cause pretrain_output shape is (none,none)

Я не могу использовать tf.keras.layers.Dense напрямую, потому что Dimension не равен никому. Кто-нибудь может научить меня, как получить средний слой с правильной формой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...