filename, modelfile, outputfile = argv # load gotdata gotData = PickleHandler("./got.pkl") def loss(labels, logits): return tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True) # define a new model model = tf.keras.Sequential([ # a embedding layer tf.keras.layers.Embedding(gotData.vocab_size(), 256, batch_input_shape=[1, None]), # lstm layer tf.keras.layers.LSTM( 512, stateful=True, return_sequences=True, recurrent_initializer="glorot_uniform", ), # dropout layer tf.keras.layers.Dropout(0.4), tf.keras.layers.LSTM( 256, stateful=True, return_sequences=True,
# load gotdata gotData = PickleHandler("./got.pkl") def loss(labels, logits): return tf.keras.losses.sparse_categorical_crossentropy( labels, logits, from_logits=True ) # define a new model model = tf.keras.Sequential( [ # a embedding layer tf.keras.layers.Embedding( gotData.vocab_size(), 256, batch_input_shape=[1, None] ), # lstm layer # bidirectional rnn layer tf.keras.layers.Bidirectional( tf.keras.layers.SimpleRNN( 1024, return_sequences=True, stateful=True, recurrent_initializer="glorot_uniform", ) ), # dropout layer tf.keras.layers.Dropout(0.4), # dense layer tf.keras.layers.Dense(gotData.vocab_size()),
# define some dataset params BATCH_SIZE = 64 # buffer size for storage BUFFER_SIZE = 1000 # shuffle dataset for our model dataset = dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE, drop_remainder=True) # some hyper prams rnn_units = 1024 # number of rnn units embedding_units = 256 # size of embedding vocab_size = gotData.vocab_size() # vocab size for input # build model function def build_model(vocab_size, rnn_units, embedding_units, batch_size): # make a sequenctial model model = tf.keras.Sequential([ # first embedding layer tf.keras.layers.Embedding(vocab_size, embedding_units, batch_input_shape=[batch_size, None]), # hidden gru layer tf.keras.layers.GRU( rnn_units, return_sequences=True, stateful=True,