Я хочу определить операцию в тензорном потоке, которая вычисляет что-то вроде:
x обеспечивается тензором. Наконец, операция должна быть сравнена с известным значением и должны быть изучены параметры alpha, beta i и b.
(Я думаю) результат всех входов вызывает проблемы. Это одна из версий, которую я безуспешно пытался развернуть. # input X = tf.placeholder (tf.float32, [None, 2], name = "X") Y = tf.placeholder (tf.float32, [None, 1], name = "Y")
# hidden
beta = tf.get_variable("beta", shape=[2], initializer=tf.contrib.layers.xavier_initializer())
powered = tf.pow(X,beta)
productLayer = tf.contrib.keras.layers.multiply(powered) # bad line
# output
w_o = tf.get_variable("w_o", shape=[1], initializer=tf.contrib.layers.xavier_initializer())
b_o = tf.get_variable("bias", shape=[1], initializer=tf.zeros([1]))
output = tf.add(tf.matmul(productLayer,w_o), b_o)
loss = tf.reduce_sum(tf.square(output - Y)) # tf.nn.l2_loss(yhat - Y)
Запуск полного сценария из gist https://gist.github.com/anonymous/c17d45b4e997bfccb5275d6ffa4 is45 в результате появляется сообщение об ошибке:
Файл "h2o_test_opti.py", строка 13, в productLayer = tf.contrib.keras.layers.multiply (powered) ValueError: слой слияния должен вызываться для списка входных данных.
Я подумал, что описание функций tf.contrib.keras.layers.multiply соответствует моим потребностям. Я также попытался найти наивный способ, например цикл for, для вычисления произведения всех входящих тензорных элементов, но безуспешно, так как я не мог представить себе способ получить доступ к тензору правильным способом. Выбор правильных индикаторов невозможен (?), Поскольку я не знаю текущий шаг и, следовательно, правильный тензор для обработки?
Я хочу протестировать это как «функцию активации» (точнее, как процедуру оптимизации / подгонки).
Пожалуйста, дайте мне знать, если для решения этой проблемы потребуется дополнительная информация.