В чем смысл «0» в выводе & ldquo; ph: 0 & rdquo; и & ldquo; ph_1: 0 & rdquo; в Tensorflow [дубликат]

Оператор == всегда предназначен для сравнения ссылок на объекты, тогда как метод сравнения строк .equals () переопределяется для сравнения содержимого:

String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1 == s2); // It prints false (reference comparison)
System.out.println(s1.equals(s2)); // It prints true (content comparison)
24
задан nbro 3 January 2018 в 21:09
поделиться

1 ответ

Ваши наблюдения над наименованием Tensor абсолютно правильны: имя Tensor является конкатенацией

  1. имени выполняемой операции,
  2. двоеточие (:) и
  3. индекс этого тензора на выходах операции, которая его произвела.

Поэтому тензор с именем "foo:2" является выходом op с именем "foo" в позиции 2 (с индексами, начинающимися с нуля).

Именование объектов tf.Variable немного странно. Каждый tf.Variable содержит объект изменчивого тензора , который содержит состояние переменной (и несколько других тензоров). A "Variable" op (который имеет имя "variable_name" в вашем примере) «производит» этот изменяемый тензор каждый раз, когда он запускается как его 0-й выход, поэтому имя изменяемого тензора "variable_name:0".

Поскольку a tf.Variable в основном неотличим от tf.Tensor & mdash; в нем его можно использовать в тех же местах: mdash; мы приняли решение сделать имена переменных похожими на имена тензоров, поэтому свойство Variable.name возвращает имя изменяемый тензор. (Это контрастирует с объектами tf.QueueBase и tf.ReaderBase , которые не используются непосредственно в качестве тензоров (вместо этого вы должны вызывать методы на них для создания ops, которые работают на их состоянии), поэтому они не имеют тензорного имени.)

34
ответ дан nbro 16 August 2018 в 00:05
поделиться
  • 1
    Есть ли простой способ создать имя вывода? Без файла pb и только контрольных точек? – rambossa 19 September 2017 в 17:11
  • 2
    есть ли пример, показывающий правило 3: индекс этого тензора на выходах операции, которая его произвела?. – Alpha 18 July 2018 в 08:16
  • 3
    @Alpha Sure: print(tf.split([0, 1, 2, 3, 4, 5], 5, name="split_op")[3].name), который печатает имя тензора в индексе 3 на выходах "split_op", будет печатать "split_op:3". – mrry 18 July 2018 в 21:49
Другие вопросы по тегам:

Похожие вопросы: