Есть ли способ использовать eval () для двоичных файлов в Transformer.body (..)? - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь заставить tensor2tensor преобразователь анализировать в Transformer.body(self, features) некоторую дополнительную информацию, обернутую в двоичные файлы, и мне нужно получить значения из тензора внутри body(). Как мне этого добиться?

Это для моего эксперимента, где мне нужно получить Transformer.body (self, features), чтобы прочитать тензор ASCII, переданных в «функциях», преобразовать его в строку, а затем использовать эту строку для извлечения чего-либо из файла система. В этом случае каждый входной / целевой тензор должен быть в паре с одной строкой (то есть 1D-тензором кодов ASCII)

Единственный способ, которым я вижу, что это может сработать, - это сделать eval() для тензора рассматриваемых функций Я пытался сделать это в рамках tf.Session(), но это не сработало, давая мне:

FailedPreconditionError (см. Выше для отслеживания): GetNext() не удалось, так как итератор не был инициализирован. Убедитесь, что вы выполнили операцию инициализатора для итератора, прежде чем получить следующий элемент.

Я уже делаю sess.run(tf.gloal_variables_initializer()), поэтому я думаю, что для правильной инициализации мне понадобится доступ к какому-либо итератору, выходящему за рамки body(), и инициализировать его, что я не понял, как.

Еще более хитроумно то, что body() не выглядит выполненным с нетерпением. Несмотря на то, что я явно положил tf.enable_eager_execution() в tenor2tensor / bin / t2t_trainer.py, я получаю False, когда я запускаю tf.executing_eagerly в body().

T2T, который я использую - 1.13.4.

...