Форма тензора при определении тензора

Я работаю над нейронными сетями и много раз сталкивался с проблемами с фигурами ... Tensorflow предоставляет нам ключевое слово None, чтобы нам не приходилось беспокоиться о размере тензора ... Есть ли какие-либо недостатки в использовании Нет вместо известного числового значения формы.

способ 1

input_placeholder = tf.placeholder(tf.float32,[None,None])

способ 2

input_placeholder = tf.placeholder(tf.float32,[64,100])

Будет ли это иметь значение при запуске кода?


person Chinesh    schedule 19.09.2017    source источник


Ответы (1)


Тензоры tf.placeholder() Tensorflow не требуют передачи им фиксированной формы. Это позволяет передавать различные формы в последующем tf.Session.run() вызове. Так что ваш код будет работать нормально. У него нет никаких недостатков, потому что, когда мы создаем заполнитель, Tensorflow не выделяет никакой памяти. Когда вы вводите заполнитель при вызове tf.Session.run(), TensorFlow выделяет память соответствующего размера для входных тензоров.

Если вы в дальнейшем используете эти input_placeholder в какой-либо операции в вашем коде, определение их с помощью None, то есть неограниченной формы, может привести к тому, что Tensorflow выполнит некоторые проверки, связанные с формой тензоров, при динамическом выполнении этих операций во время вызова Session.run(). Это связано с тем, что при построении графа Tensorflow не знает точной формы вашего ввода.

person Ayushi Agarwal    schedule 19.09.2017