Beispiel #1
0
is_training = False
if is_training:
    model.fit(X_train, Y_train, validation_data=(
        X_test, Y_test), epochs=20, batch_size=64)

    # Evaluate the model
    scores = model.evaluate(X_test, Y_test, verbose=0)
    print("Evaluation Accuracy: %.2f%%" % (scores[1]*100))
    model.save(filename, save_format='tf')
else:
    model.load_weights(filename)

t1 = time.time()

lstm_upstream = tf.keras.Model(
    inputs=model.input, outputs=model.get_layer('max_pooling1d').output)
lstm_input = lstm_upstream.predict(X_test, batch_size=8)
# print(lstm_input.shape)

num_records = lstm_input.shape[0]
quantized_lstm_input = quanti_convert_float_to_int16(
    lstm_input.reshape(num_records * 25*32), in_pos).reshape((num_records, 25*32))
lstm_output = np.zeros((num_records, 25*100), dtype=np.int16)


runner_idx = count = 0

outputTensors = runners[0].get_output_tensors()
_, _, runner_out_seq_len = tuple(outputTensors[0].dims)

quantized_input = quantized_lstm_input.view()
Beispiel #2
0
lstm_upstream = K.function([model.layers[0].input], [model.layers[2].output])
lstm_input = lstm_upstream([X_test])[0]

batches = lstm_input.shape[0]
lstm_output = np.zeros((batches, 100))
lstm_tmp = np.zeros((1, 100))
lstm = K.function([model.layers[3].input], [model.layers[3].output])
t1 = time.time()
for index, x in enumerate(lstm_input):
    lstm_input_batch1 = x.reshape(1, 25, 32)
    lstm_output[index] = lstm(lstm_input_batch1)[0]

#lstm = K.function([model.layers[3].input], [model.layers[3].output])
#lstm_start = dt.datetime.now()
#lstm_output = lstm([lstm_input])[0]
#lstm_finish = dt.datetime.now()
#print('lstm foward time(secs):', (lstm_finish - lstm_start).total_seconds())
#lstm_out = lstm_output_batch1.reshape((batches, 25, 100))
lstm_downstream = Sequential()
lstm_downstream.add(layers.Dense(1, activation='sigmoid'))
lstm_downstream.compile(loss='binary_crossentropy',
                        optimizer='adam',
                        metrics=['accuracy'])
lstm_downstream.build((1, 100))
lstm_downstream.layers[0].set_weights(model.get_layer('dense').get_weights())
score = lstm_downstream.evaluate(lstm_output, Y_test, verbose=0)
t2 = time.time()
print('Accuracy:', score[1])
print('E2E Time:', t2 - t1)
#print(tf.__version__)