В R я пытался использовать математические функции Tensorflow. Моя проблема в том, что я не могу понять, как вводить аргументы в функции тензорного потока, как вы можете с Python.
Например, как я могу выполнить функцию tensorflowdot
?
x = tf$constant(c(1, 2, 3))
y = tf$constant(c(9, 8, 7))
tf$tensordot(x, y, axes = 1)
Error in py_call_impl(callable, dots$args, dots$keywords) :
TypeError: Cannot convert 1.0 to EagerTensor of dtype int32
Я могу воспроизвести вывод tensordot
вручную, но я хочу использовать встроенный
tf$reduce_sum(x * y)
Значение axes
анализируется как число с плавающей запятой, а не целое число. Исправление его как целого числа устраняет ошибку:
> tf$tensordot(x, y, axes = 1L)
tf.Tensor(46.0, shape=(), dtype=float32)
Это связано с тем, как R определяет числовые типы данных.
is.integer(1) # FALSE
is.double(1) # TRUE
is.integer(1L) # TRUE
is.double(1L) # FALSE