2016-10-05 3 views
1

Я пытаюсь использовать модель Keras в «чистом» TensorFlow (я хочу использовать его в приложении для Android). Я успешно экспортировал модель Keras в protobuf и импортировал ее в Tensorflow. Однако для работы модели тензорного потока требуется указать имена входных и выходных тензоров, и я не знаю, как их найти. Моя модель выглядит следующим образом:Название входных и выходных тензоров при загрузке модели Keras в TensorFlow

seq = Sequential() 
seq.add(Convolution2D(32, 3, 3, input_shape=(3, 15, 15), name="Conv1")) 
.... 
seq.add(Activation('softmax', name="Act4")) 
seq.compile() 

Когда я печатаю тензоры в TensorFlow я могу найти:

Tensor("Conv1_W/initial_value:0", shape=(32, 3, 3, 3), dtype=float32) 
Tensor("Conv1_W:0", dtype=float32_ref) 
Tensor("Conv1_W/Assign:0", shape=(32, 3, 3, 3), dtype=float32_ref) 
Tensor("Conv1_W/read:0", dtype=float32) 

Tensor("Act4_sample_weights:0", dtype=float32) 
Tensor("Act4_target:0", dtype=float32) 

Hovewer, неты тензоров, которые имеют форму (3,15,15).

Я видел here, что я могу добавить «my_input_tensor» в качестве входных данных, hovewer я не знаю, какой тип он - я пытался заполнители TensorFlow в и Keras', и они дали мне эту ошибку:

/XXXXXXXXX/lib/python2.7/site-packages/keras/engine/topology.pyc in __init__(self, input, output, name) 
    1599    # check that x is an input tensor 
    1600    layer, node_index, tensor_index = x._keras_history 
-> 1601    if len(layer.inbound_nodes) > 1 or (layer.inbound_nodes and layer.inbound_nodes[0].inbound_layers): 
    1602     cls_name = self.__class__.__name__ 
    1603     warnings.warn(cls_name + ' inputs must come from ' 

AttributeError: 'NoneType' object has no attribute 'inbound_nodes' 

ответ

0

Позвоните model.summary() в Keras, чтобы увидеть все слои.

Входной тензор часто будет называться input_1, input_2 и т. Д. См. В сводке правильное имя.


При использовании input_shape=(3,15,15) в Keras, вы на самом деле с помощью тензоров, которые имеют форму (None, 3, 15, 15). Где None будет заменен размером партии при обучении или предсказании.

Часто для этих нестандартных размеров вы используете -1, например, в (-1, 3, 15, 15). Но я не могу заверить вас, что все будет так. Он отлично работает для изменения тензоров, но для создания я никогда не тестировал.

Смежные вопросы