Как установить переменную tenorflow для первых входных данных? - PullRequest
0 голосов
/ 30 сентября 2018

Можно ли установить переменную тензорного потока для первого значения входных данных внутри метода?

Предположим, что у нас есть входные данные, такие как x [0], x [1], ... x [N-1].Я хотел бы, чтобы переменная тензорного потока сохраняла первое значение «x [0]» внутри метода Python.Ниже приведен упрощенный код:

def Graph(placeholder):
    # I want to store the first value of placeholder in "u"
    u = tf.get_variable('x', dtype=tf.float32, trainable=False)


    # Some calculation including 'u'
    # For example, y = 0.7 * placeholder - u

    return y

Возможно ли это когда-либо сделать?

1 Ответ

0 голосов
/ 30 сентября 2018

Вы можете попробовать это.Здесь placeholder[:1] - синтаксис среза для получения первого значения, которое 1

u = u.assign(placeholder[:1]) - это присвоение первого элемента.

import tensorflow as tf

placeholder = tf.placeholder( tf.int32, shape=(4,))

def Graph(placeholder):

    # I want to store the first value of placeholder in "u"
    with tf.variable_scope("reuse", reuse=tf.AUTO_REUSE):

        u = tf.get_variable('x',[1],dtype=tf.int32, trainable=False)

        u = u.assign(placeholder[:1])

        place_print = tf.Print(placeholder[:1],[placeholder[:1]])
        u_print = tf.Print(u,[u])

        # Some calculation including 'u'
        y = 7 * place_print - u_print

        return y

with tf.Session() as sess:

    with tf.variable_scope("reuse", reuse=tf.AUTO_REUSE):

        u = tf.get_variable("x", [1], dtype=tf.int32)

        f = Graph(placeholder)

        sess.run( tf.global_variables_initializer() )

        print(sess.run( [f,u],feed_dict={placeholder: [1, 2, 3, 4]}))

Выходные данные

[array([6]), array([0])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...