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()),
示例#3
0
# 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,