Ejemplo n.º 1
0
alphabet = [str(x) for x in range(10)] + ['+', ' ']

n_chars = len(alphabet)
n_in_seq_length = n_terms * ceil(log10(largest+1)) + n_terms - 1
n_out_seq_length = ceil(log10(n_terms * (largest+1)))

model = Sequential()
model.add(LSTM(75, input_shape=(n_in_seq_length, n_chars))
model.add(RepeatVector(n_out_seq_length))
model.add(LSTM(50, return_sequences=True))
model.add(TimeDistributed(Dense(n_chars, activation='softmax')))
model.compile(loss='categorical_crossentropy', optiizer='adam', metrics=['accuracy'])
print(model.summary())

X, y = generate_data(75000, n_terms, largest, alphabet)
model.fil(X, y, epochs=1, batch_size=32)

X, y = genrate_data(100, n_terms, largest, alphabet)
loss, acc = model.evaluate(X, y, verbose=0)
print('Loss: %f, Accuracy:%f' % (loss, acc*100))

for _ in range(10):
    X, y = generate_data(1, n_terms, largest, alphabet)
    yhat = model.predict(X, verbose=0)
    in_seq = invert(X[0], alphabet)
    out_seq = invert(y[0], alphabet)
    predicted = invert(yhat[0], alphabet)
    print('%s = %s (expect %s)' % (in_seq, predicted, out_seq))