Какие значения использовать при подаче заполнителей в Tensorflow? - PullRequest
2 голосов
/ 26 апреля 2020

В приведенном ниже коде есть ряд тензорных операций и вычислений. Я хотел бы увидеть результаты некоторых из этих расчетов, чтобы я мог лучше понять их. В частности, я хотел бы увидеть, как выглядит h во время выполнения графа, используя print(Session.Run(h)). Тем не менее, вычисления зависят от заполнителя X. Поэтому, чтобы увидеть их, мне нужно использовать словарь каналов.

Я прочитал этот вопрос SO: Как заполнить заполнитель? и несколько других. Я до сих пор не знаю, что мне следует вводить в этот заполнитель.

Чтобы увидеть значение h, каким образом, или, скорее, что я должен добавить в словарь каналов при попытке его напечатать?

def expand_tile(value, size):
    """Add a new axis of given size."""
    value = tf.convert_to_tensor(value, name='value')
    ndims = value.shape.ndims
    return tf.tile(tf.expand_dims(value, axis=0), [size] + [1]*ndims)

def positions_for(tokens, past_length):
    batch_size = tf.shape(tokens)[0]
    nsteps = tf.shape(tokens)[1]
    return expand_tile(past_length + tf.range(nsteps), batch_size)


def model(hparams, X, past=None, scope='model', reuse=tf.AUTO_REUSE):
    with tf.variable_scope(scope, reuse=reuse):
        results = {}

        batch_size = 1
        X = tf.placeholder(tf.int32, [batch_size, None])

        batch, sequence = shape_list(X)

        wpe = tf.get_variable('wpe', [1024, 768],
                             initializer=tf.random_normal_initializer(stddev=0.01))
        wte = tf.get_variable('wte', [50256, 768],
                             initializer=tf.random_normal_initializer(stddev=0.02))
        past_length = 0 if past is None else tf.shape(past)[-2]
        h = tf.gather(wte, X) + tf.gather(wpe, positions_for(X, past_length))

1 Ответ

0 голосов
/ 26 апреля 2020

Когда вы используете интерактивный сеанс, вы можете просто установить значения в python x = 57, полностью обходя заполнитель, а затем оценить оставшуюся часть графика так, как вы хотите.

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