Unverified Commit 5dcda807 by PLN

new: MacroCrate

parent 4c3009e8
import os
from datetime import datetime
from keras.callbacks import ModelCheckpoint, EarlyStopping
from glossolalia.loader import load_seeds, load_text
from glossolalia.lstm import LisSansTaMaman
def train():
max_len = 200
nb_words = 50
nb_epoch = 110
nb_layers = 64
dropout = .4 # TDO finetune layers/dropout
validation_split = 0.3
lstm = LisSansTaMaman(nb_layers, dropout, validation_split, bidirectional=True, debug=True)
directory = "../models/macro"
if not os.path.exists(directory):
os.mkdir(directory)
filename_model = "../models/macro/macro_lstm%i-d%.1f-{epoch:02d}_%i-{accuracy:.4f}.hdf5" % (
nb_layers, dropout, nb_epoch)
filename_output = "./output/macrocrate_%i-d%.1f_%s.txt" % (
nb_layers, dropout, datetime.now().strftime("%y%m%d_%H%M"))
callbacks_list = [
ModelCheckpoint(filename_model, monitor='val_accuracy', period=10, save_best_only=True),
EarlyStopping(monitor='val_accuracy', patience=5)]
corpus = load_text("socrate.txt")[:max_len] \
+ load_text("guerre.txt")[:max_len]
print("Corpus:", corpus[:10])
lstm.create_model(corpus)
with open(filename_output, "a+") as f:
for i in range(0, nb_epoch, 10):
lstm.fit(epochs=min(i + 10, nb_epoch), initial_epoch=i,
callbacks=callbacks_list,
validation_split=validation_split)
for output in lstm.predict_seeds(nb_words):
print(output)
f.writelines(output)
for i, seed in enumerate(load_seeds(corpus, 5)):
output = lstm.predict(seed, nb_words)
print("%i %s -> %s" % (i, seed, output))
f.writelines(output)
for i, seed in enumerate(load_seeds(corpus, 20)):
output = lstm.predict(seed, nb_words)
print("%i %s -> %s" % (i, seed, output))
f.writelines(output)
while True:
input_text = input("> ")
text = lstm.predict(input_text, nb_words)
print(text)
f.writelines("%s\n" % text)
if __name__ == '__main__':
train()
acquérir la élections municipales et et nous lui-même
Le gouvernement précisera les modalités de la priorité absolue.
dès dès dès soir, soir, qui y allocution.
La journée de jeudi, un consensus scientifique et politique s’est formé des élections municipales des mort, et des restaurants, des bars et des services de réanimation clos.
et l’on s’agit d’indépendants, la dieux amis de l’homme, à la propagation de réanimation sont pas.
t la enfers, de nos soignants s’accentue, notre mort. s’accentue, notre mort. toute notre concentrer sur un seul objectif : ralentir la
. demande de garder le calme et que que qui est philosophe de garder le mêler et la mort de la veille, que que nous erreur. que les âmes des morts sont pour nos vie et des services de réanimation la gestes barrières contre le virus.
Comment cela, socrate. simmias, que les fausses informations circulent
Les dieux nécessaires pour aller t ravailler quand le travail à distance n’est pas possible
services de la vie de nos vie et la dieux barrières contre des dieux barrières
contre des dieux barrières maux. notre mort, toute
certaines clos face ; car la profile ; des dieux objectif
y a bien de l’apparence de la vie de la vie de la mort. et des dieux supérieurs des maîtres supérieurs des consignes supérieurs
Dirons-nous que la justice doit le corps, et le corps, et le corps ?
et nous nous incapables de discerner la vérité. de cas et la dieux objectif des morts de la mort.
je veux pas ce soir adresser gouverné de rechercher le plus d’appeler nos déplacements élus les gestes fermes le premier tour. maux. nos déplacements barrières nos amis de nos mort. barrières nos déplacements ni nos déplacements ni nos déplacements ni nos déplacements ni nos mort. ni nos mort.
Eh donc, mon cher, de garder le calme de mille chimères, de mille sottises, de manière que que il ne réfléchirait pas ce que la mort ? la mort ? nous nous plus grand. ou que nous nous conserverons purs de nous remplir de sa corruption naturelle, de discerner la vérité.
Un midi et les hauts-de-france, qui, ile-de-france, nos soignants de panique en faire respecter j’ai décidé de renforcer encore avec philolaüs protéger eux-mêmes. protéger leurs portes. ou, des proches des élections municipales serait reporté.
leurs salariés des strict barrières contre le strict nécessaire. contre le virus.
donc, mon cher, de garder le lien, d’appeler nos contacts au-delà et les trouveras avec la services de réanimation des décision des consignes supérieurs des consignes maux. maux. maux. la propagation le virus. des décision ni nos mort. ni nos mort. ni nos mort. ni nos mort. ni nos mort.
Une guerre sensible. même de l’extravagance ? la veille ? celui la mort de la vie et celui qui n’est pas la mort de la mort. qu’autant nous nous mettions à réfléchir, la mort vote qu’alors que nous renoncerons à la vie
Les dieux barrières pour aller travailler quand le travail à distance n’est pas possible.
La semaine les réunions familiales ou amicales ne seront plus permises. occupez-vous de la vie de la mort.
Virus donc ! ! le combinaison de la vie de la mort. après également clos leurs portes. dans des proches des élections municipales des nouvelles, lisez. des voisins. barrières contre le virus. ? nos concentrer et les proches. temps, nos concentrer du virus. et nos seul objectif des décision des services
Les enfers le disent, les collèges, les lycées, les universités sont fermées depuis ce jour.
\ No newline at end of file
de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterJe de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterTu de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterLe de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterLa de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterLes de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de plus de surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterUn de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de plus de surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterOn de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterNous de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de plus de surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterL' de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterLeur de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterCe de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de plus de surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterUn de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de plus de surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterEntièrement, de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterLa de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonterMais de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de de autre surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter surmonter
\ No newline at end of file
import tensorflow as tf
from transformers import GPT2Tokenizer, TFGPT2LMHeadModel
def main():
example_gpt2()
def example_gpt2():
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
# add the EOS token as PAD token to avoid warnings
model = TFGPT2LMHeadModel.from_pretrained("gpt2", pad_token_id=tokenizer.eos_token_id)
# encode context the generation is conditioned on
input_ids = tokenizer.encode('I enjoy walking with my cute dog', return_tensors='tf')
# set seed to reproduce results. Feel free to change the seed though to get different results
tf.random.set_seed(0)
# generate text until the output length (which includes the context length) reaches 50
greedy_output = model.generate(input_ids, max_length=50)
print("Output:\n" + 100 * '-')
print(tokenizer.decode(greedy_output[0], skip_special_tokens=True))
# set no_repeat_ngram_size to 2
beam_output = model.generate(
input_ids,
max_length=50,
num_beams=5,
no_repeat_ngram_size=2,
early_stopping=True
)
print("Output:\n" + 100 * '-')
print(tokenizer.decode(beam_output[0], skip_special_tokens=True))
# set return_num_sequences > 1
beam_outputs = model.generate(
input_ids,
max_length=50,
num_beams=5,
no_repeat_ngram_size=2,
num_return_sequences=5,
early_stopping=True
)
# now we have 3 output sequences
print("Output:\n" + 100 * '-')
for i, beam_output in enumerate(beam_outputs):
print("{}: {}".format(i, tokenizer.decode(beam_output, skip_special_tokens=True)))
# activate sampling and deactivate top_k by setting top_k sampling to 0
sample_output = model.generate(
input_ids,
do_sample=True,
max_length=50,
top_k=0
)
print("Output:\n" + 100 * '-')
print(tokenizer.decode(sample_output[0], skip_special_tokens=True))
# use temperature to decrease the sensitivity to low probability candidates
sample_output = model.generate(
input_ids,
do_sample=True,
max_length=50,
top_k=0,
temperature=0.7
)
print("Output:\n" + 100 * '-')
print(tokenizer.decode(sample_output[0], skip_special_tokens=True))
# set top_k to 50
sample_output = model.generate(
input_ids,
do_sample=True,
max_length=50,
top_k=50
)
print("Output:\n" + 100 * '-')
print(tokenizer.decode(sample_output[0], skip_special_tokens=True))
# deactivate top_k sampling and sample only from 92% most likely words
sample_output = model.generate(
input_ids,
do_sample=True,
max_length=50,
top_p=0.92,
top_k=0
)
print("Output:\n" + 100 * '-')
print(tokenizer.decode(sample_output[0], skip_special_tokens=True))
# set top_k = 50 and set top_p = 0.95 and num_return_sequences = 3
sample_outputs = model.generate(
input_ids,
do_sample=True,
max_length=50,
top_k=50,
top_p=0.95,
num_return_sequences=3
)
print("Output:\n" + 100 * '-')
for i, sample_output in enumerate(sample_outputs):
print("{}: {}".format(i, tokenizer.decode(sample_output, skip_special_tokens=True)))
if __name__ == '__main__':
main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment