import numpy as np
import tensorflow as tf
text = open('pianoabc.txt', 'r').read()
유니크text = list(set(text))
유니크text.sort()
text_to_num = {}
num_to_text = {}
for i, data in enumerate(유니크text):
text_to_num[data] = i
num_to_text[i] = data
숫자화text = []
for i in text:
숫자화text.append( text_to_num[i] )
X = []
Y = []
for i in range(0, len(숫자화text) - 25):
X.append( 숫자화text[i : i+25])
Y.append( 숫자화text[i+25] )
print(np.array(X).shape)
X = tf.one_hot(X, 31)
Y = tf.one_hot(Y, 31)
print(X[0:2])
model = tf.keras.models.Sequential([
tf.keras.layers.LSTM(100, input_shape=(25, 31)),
tf.keras.layers.Dense(31, activation='softmax')
])
model.compile(loss='categorical_crossentropy', optimizer='adam')
model.fit( X, Y, batch_size=64, epochs=30, verbose=2 )
model.save('model1')
