Тензорный поток tf.divide vs / [duplicate]

Я столкнулся с такой же проблемой размера кучи java. У меня есть два решения, если вы используете java 5 (1.5).

1st: просто установите jdk1.6 и перейдите к настройкам eclipse и установите jre-путь jav1 1.6 по мере того, как вы установили

2nd: -Проверьте свой аргумент VM и пусть он будет тем, чем он является. просто добавьте одну строку ниже всех аргументов, присутствующих в аргументах VM, как -Xms512m -Xmx512m -XX: MaxPermSize = ... m (192m).

Я думаю, что это сработает ...

33
задан platinor 18 June 2016 в 19:19
поделиться

2 ответа

Нет никакой разницы в точности между a+b и tf.add(a, b). Первый выводит на a.__add__(b), который отображается на tf.add с помощью после строки в math_ops.py

_OverrideBinaryOperatorHelper(gen_math_ops.add, "add")

Единственная разница это имя узла в базовом графе add вместо Add. Вы можете вообще сравнивать вещи, глядя на базовое представление Графа, подобное этому

tf.reset_default_graph()
dtype = tf.int32
a = tf.placeholder(dtype)
b = tf.placeholder(dtype)
c = a+b
print(tf.get_default_graph().as_graph_def())

. Вы также можете увидеть это непосредственно, проверив метод __add__. Существует дополнительный уровень косвенности, потому что это замыкание, но вы можете получить базовую функцию следующим образом:

real_function = tf.Tensor.__add__.im_func.func_closure[0].cell_contents
print(real_function.__module__ + "." + real_function.__name__)
print(tf.add.__module__ + "." + tf.add.__name__)

И вы увидите вывод ниже, что означает, что они называют одну и ту же базовую функцию

tensorflow.python.ops.gen_math_ops.add
tensorflow.python.ops.gen_math_ops.add

Вы можете видеть из tf.Tensor.OVERLOADABLE_OPERATORS, что следующие специальные методы Python потенциально перегружены соответствующими версиями TensorFlow

{'__abs__',
 '__add__',
 '__and__',
 '__div__',
 '__floordiv__',
 '__ge__',
 '__getitem__',
 '__gt__',
 '__invert__',
 '__le__',
 '__lt__',
 '__mod__',
 '__mul__',
 '__neg__',
 '__or__',
 '__pow__',
 '__radd__',
 '__rand__',
 '__rdiv__',
 '__rfloordiv__',
 '__rmod__',
 '__rmul__',
 '__ror__',
 '__rpow__',
 '__rsub__',
 '__rtruediv__',
 '__rxor__',
 '__sub__',
 '__truediv__',
 '__xor__'}

Эти методы описаны в ссылке Python 3.3.7 : эмуляция числовых типов. Обратите внимание, что модель данных Python не предоставляет способ перегрузить оператор присваивания =, поэтому назначение всегда использует встроенную реализацию Python.

39
ответ дан Yaroslav Bulatov 18 August 2018 в 13:16
поделиться
  • 1
    Итак, почему эти методы тензорного потока вообще определены? – Hossein 21 June 2017 в 10:46
  • 2
    @Hossein Потому что мы в Google любим быть дополнительными. – coldspeed 22 June 2018 в 04:33
0
ответ дан Salvador Dali 30 October 2018 в 04:37
поделиться
Другие вопросы по тегам:

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