2016-07-13 3 views
5

Как инициализировать тензор T как единую матрицу?Как инициализировать переменную тензора как идентификационную матрицу в TensorFlow

Следующее инициализирует T как матрицу нулей 784 на 784.

T = tf.Variable(tf.zeros([784, 784])) 

Но я не могу найти tf.fn, который ведет себя по мере необходимости. Как это может быть сделано?

ответ

6

Фактически вы можете передавать массивы numpy в качестве аргумента для initial_value, поэтому tf.Variable(initial_value = np.identity(784)) должен делать то, что вы намереваетесь сделать.

+1

Я нашел 'tf.Variable (tf.convert_to_tensor (np.eye (784), DTYPE = tf.float32))' работает, но ваш ответ чище. Благодарю. –

2

Не хотите устанавливать numpy только для np.identity?
Вот tensorflow-единственный вариант:

T = tf.Variable(tf.diag(tf.ones(size))) 
4

tf.fn вы ищете называется tf.eye. Таким образом, наиболее емким ответ

T = tf.Variable(tf.eye(size)) 

Примечание: помещая это в tf.Variable инициализирует изучаемым веса к единице, но допускает, что оно может быть изменено. Если вы на самом деле просто хотите постоянную единичную матрицу, а затем просто использовать

T = tf.eye(size) 
+1

Есть ли 'tf.eye' из версии 1.1? Я использовал 'tf.diag (tf.ones (size))' в течение нескольких месяцев, и теперь чувствую себя немного глупо. ^^ ' – NiziL

+2

Человек, Tensorflow меняется так быстро, что трудно понять все это и пропустить одна маленькая функция - это не большая проблема (мне тоже нравится ваше решение). Насколько я могу судить, он был добавлен в [v0.12] (https://www.tensorflow.org/versions/r0.12/api_docs/python/math_ops/matrix_math_functions#eye) (по крайней мере, я не мог " t найти его в v0.11, но я мог бы в v0.12). https://www.tensorflow.org/versions/ – Multihunter

+1

Полностью согласен, это не большая проблема, но это расстраивает, потому что я искал эту функцию перед использованием трюков 'diag' с v0.11 и остаюсь с этим решение по очереди ... Я должен обратить больше внимания на журнал изменений! Спасибо, что поползли в API-интерфейс tensorflow, чтобы принести мне ответ =) – NiziL

Смежные вопросы