Бесплатно зарегистрируйся и получай уведомления о новых проектах по работе

Объясните принцип построения в keras RNN по принципу one-to-many и many-to-many

e
Заказчик
Отзывы фрилансеров: + 12 - 0
Зарегистрирован на сайте 11 лет
Бюджет: До 100 ₽/час
Срок: До недели
Необходимо объяснить принцип формирования рекуррентного слоя принимающего на вход вектор (не последовательность векторов), выдающий последовательность векторов на выходе. И как чуть более сложная задача –  рекуррентная сеть many-to-many с последовательностями на входе и выходе разной длины. На примере keras.
В обоих случаях получаю ошибку различной длины последовательности.

Пример 1.
Нужно подать на вход вектор длиной 2 (не последовательность), т.е. есть три входных образца x[0],x[1],x[2].
На выходе получаю последовательности 3 раза по 1 значению. 1) y[0][0],y[0][1],y[0][2]; 2)y[1][0],y[1][1],y[1][2];
3) y[2][0],y[2][1],y[2][2]

x = [[1,2],[3,4],[4,5]]
y=[[1,2,3],[1,2,3],[1,2,3]]
x = np.array(x)
y = np.array(y)
input = Input(input_shape=(1,2))
model = SimpleRNN(1, stateful=True, return_state=False,return_sequences=True)(input)
output = Dense(1)(model)
test = Model(input, output)

test.compile(loss='mse', optimizer='adam')
test.fit(x,y)

Пример 2. 
many-to-many, такой что вход и выход различной длины
На вход подаю последовательность из 10ти значений размерностью 1, 
на выходе ожидаю последовательность из 20ти значений размерностью 1

input_shape=(None, 1)
model_input = Input(shape=input_shape)
rnn = LSTM(20,  return_sequences=False)(model_input)
dense = Dense(10,activation='tanh')(rnn)

input_shape2=(None, 1, 10)
model_input2 = Input(shape=input_shape2)
rnn2 = LSTM(20,  return_sequences=True,stateful=True)(model_input2)
dense2 = Dense(1,activation='sigmoid')(rnn2)

encoder = keras.Model(model_input, dense, name="encoder")
decoder = keras.Model(model_input2, dense2, name="decoder")

model = keras.Model(model_input, decoder(encoder(model_input)), name="autoencoder")
model.compile(optimizer='adam', loss='binary_crossentropy')
Разделы:
Опубликован:
10.04.2024 | 12:48 [поднят: 10.04.2024 | 12:48] [последние изменения: 10.04.2024 | 14:35]

Теги:

Сведения об ООО «Ваан» внесены в реестр аккредитованных организаций, осуществляющих деятельность в области информационных технологий. ООО «Ваан» осуществляет деятельность, связанную с использованием информационных технологий, по разработке компьютерного программного обеспечения, предоставлению доступа к программе для ЭВМ и является правообладателем программы для ЭВМ «Платформа FL.ru (версия 2.0)».