return_sequences=False, dropout=0.25, recurrent_dropout=0.25, activation='tanh') else: if use_TT == 0: rnn_layer = LSTM(output_dim=np.array(tt_output_shape).prod(), return_sequences=False, dropout=0.25, recurrent_dropout=0.25, activation='tanh') else: rnn_layer = TT_LSTM(tt_input_shape=tt_input_shape, tt_output_shape=tt_output_shape, tt_ranks=tt_ranks, return_sequences=False, dropout=0.25, recurrent_dropout=0.25, activation='tanh') h = rnn_layer(masked_input) output = Dense(output_dim=11, activation='softmax', kernel_regularizer=l2(alpha))(h) model = Model(input, output) model.compile(optimizer=Adam(1e-4), loss='categorical_crossentropy', metrics=['accuracy']) # Start training ------------------------------------------------------------------------------------------------------- start = datetime.datetime.now() for l in range(1001):
if use_TT: # TT settings tt_input_shape = [7, 7, 16] tt_output_shape = [4, 4, 4] tt_ranks = [1, 4, 4, 1] rnn_size = 64 X = Input(shape=X_tr.shape[1::]) X_mask = Masking(mask_value=0.0, input_shape=X_tr.shape[1::])(X) if use_TT: Z = TT_LSTM(tt_input_shape=tt_input_shape, tt_output_shape=tt_output_shape, tt_ranks=tt_ranks, return_sequences=False, recurrent_dropout=.5)(X_mask) Out = Dense(units=1, activation='sigmoid', kernel_regularizer=l2(1e-2))(Z) else: Z = LSTM(units=rnn_size, return_sequences=False, recurrent_dropout=.5)(X_mask) # dropout=.5, Out = Dense(units=1, activation='sigmoid', kernel_regularizer=l2(1e-2))(Z) rnn_model = Model(X, Out) rnn_model.compile(optimizer=Adam(1e-3), loss='binary_crossentropy', metrics=['accuracy']) # Train the model and save the results ###################################################### rnn_model.fit(X_tr,