Я пытаюсь построить сеть LSTM, которая принимает последовательность и классифицирует последний временной шаг в каждой последовательности.
Вот что у меня есть на данный момент:
#build
net = tf.input_data(shape=[None, 64, 17])
net = tf.lstm(net, 128, dropout=[.2,.8], return_seq=True)
net = tf.lstm(net, 128, dropout=[.2,.8], return_seq=True)
net = tf.lstm(net, 128, dropout=[.2,.8])
net = tf.fully_connected(net, 3, activation='softmax')
net = tf.regression(net, optimizer='adam', learning_rate=0.01, loss='categorical_crossentropy')
#train
model = tf.DNN(net, tensorboard_verbose=0)
model.fit(trainX, trainY, validation_set=(testX,testY), show_metric=True, batch_size=None)
Мои данные были сформированы в большое количество последовательностей, каждая из которых имеет длину 64 временных шага. каждый временной шаг имеет 17 функций. Первая последовательность - это временные шаги от 0 до 63, вторая - временные шаги от 1 до 64 и т. Д.
Сеть строится нормально, но в подходящем методе я получаю такую ошибку:
ValueError: невозможно передать значение shape (64,17) для Tensor 'InputData / X: 0', которое имеет shape (?, 64,17)
У кого-нибудь есть предложения по моей проблеме?