Tensor Flow - LSTM - объект Tensor не повторяется

Привет, я использую следующую функцию для lstm rnn cell.

def LSTM_RNN(_X, _istate, _weights, _biases):
    # Function returns a tensorflow LSTM (RNN) artificial neural network from given parameters. 
    # Note, some code of this notebook is inspired from an slightly different 
    # RNN architecture used on another dataset: 
    # https://tensorhub.com/aymericdamien/tensorflow-rnn

    # (NOTE: This step could be greatly optimised by shaping the dataset once
    # input shape: (batch_size, n_steps, n_input)
    _X = tf.transpose(_X, [1, 0, 2])  # permute n_steps and batch_size

    # Reshape to prepare input to hidden activation
    _X = tf.reshape(_X, [-1, n_input]) # (n_steps*batch_size, n_input)

    # Linear activation
    _X = tf.matmul(_X, _weights['hidden']) + _biases['hidden']

    # Define a lstm cell with tensorflow
    lstm_cell = rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0)


    # Split data because rnn cell needs a list of inputs for the RNN inner loop
    _X = tf.split(0, n_steps, _X) # n_steps * (batch_size, n_hidden)

    # Get lstm cell output
    outputs, states = rnn.rnn(lstm_cell, _X, initial_state=_istate)

    # Linear activation
    # Get inner loop last output
    return tf.matmul(outputs[-1], _weights['out']) + _biases['out']

Вывод функции сохраняется в переменной pred.

pred = LSTM_RNN(x, istate, weights, biases)

Но это показывает следующую ошибку. (в котором говорится, что тензорный объект не повторяется.)

Вот ссылка на изображение ОШИБКИ - http://imgur.com/a/NhSFK

Пожалуйста, помогите мне с этим, и я прошу прощения, если этот вопрос кажется глупым, поскольку я довольно плохо знаком с библиотекой потока lstm и тензор.

Благодарю.

2 ответа

Произошла ошибка при попытке распаковать state с заявлением c, h=state, В зависимости от того, какую версию tenorflow вы используете (вы можете проверить информацию о версии, набрав import tensorflow; tensorflow.__version__ в интерпретаторе Python), в версии до r0.11, настройка по умолчанию для state_is_tuple аргумент, когда вы инициализируете rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0) установлено быть False, Смотрите документацию здесь.

BasicLSTMCell документация в r0.10

Начиная с версии tenorflow r0.11 (или основной версии), настройка по умолчанию для state_is_tuple установлено быть True, Смотрите документацию здесь.

BasicLSTMCell документация в r0.11

Если вы установили r0.11 или основную версию tenorflow, попробуйте изменить BasicLSTMCell Строка инициализации в:lstm_cell = rnn_cell.BasicLSTMCell(n_hidden, forget_bias=1.0, state_is_tuple=False), Ошибка, с которой вы столкнулись, должна исчезнуть. Хотя на их странице написано, что state_is_tuple=False поведение будет устаревшим в ближайшее время.

BasicLSTMCell аргументная документация state_is_tuple

Я случайно встретил один и тот же вопрос. Я просто опишу мои обстоятельства, которые могут помочь вам

это заявить, как следует

c1_ex, T1_ex = tf. ones(10,tf. int 32)
 raise Type Error ...

Я считаю, что левой стороне '=' были заранее установлены два имени вектора

в то время как другая сторона просто вернуть вектор

извините за неэффективность английского языка

ваша проблема на самом деле появляется в строке 146, а не в строке 193

Другие вопросы по тегам