2017-01-17 6 views
1

График вычисления в тензорном потоке имеет некоторый узел input и некоторый узел output. input представляет входной тензор в нейронную сеть, output его прогноз. Некоторые другие подграфы подают на input, некоторые потери (и другие вычисления) следуют по output. По окончании обучения я хотел бы сохранить только (вперед) подграф между input и output. Можно ли удалить все остальные операционные системы? Deleting all but a few nodes in TensorFlow graph указывает, что это невозможно. Может быть, через де-тур по экспорту вещей, используя tf.train.export_meta_graph?График вычисления черновиков в тензорном потоке

+0

Как вы планируете кормить 'input', когда ops, предшествующий ему, удаляются? – Priyatham

+0

Ну ... если вы действительно очень хотите, вы можете настраивать экспорт только обученных переменных, а затем настраивать их на меньший граф ... Но я не думаю, что можно создать граф, а затем обрезать его. –

+0

@Priyatham 'sess.run (ouput, feed_dict = {input: my_own_preprocessed_stuff})' должен это делать. – osdf

ответ

2

Хотя невозможно удалить узлы из tf.Graph, TensorFlow включает инструменты, которые позволяют обрезать буфер протокола нижнего уровня tf.GraphDef. TensorFlow graph transformation tool включает в себя проход преобразования, называемый strip_unused_nodes, который позволяет вам называть набор входных узлов и набор выходных узлов и возвращает обрезанный tf.GraphDef.

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