Jour 24 du Calendrier de l'Avent Javascript 2019
Le premier caractère est donné au modèle qui a appris les données de la phrase et le caractère suivant est deviné.
ml5js ml5 Il utilise le modèle tensorflow et facilite sa manipulation avec js.
tensorflow Il est utilisé pour la génération de modèles. tensorflow
J'ai installé Python avec Anaconda et TensorFlow avec pip.
OS:windows 10 (C'est un PC de jeu. Je pensais que cela prendrait une certaine quantité de charge.)
Télécharger ici training-charRNN
git clone https://github.com/ml5js/training-charRNN.git
C'est l'endroit le plus difficile à la fois plus tard et plus tôt, mais je préparerai des données textuelles appropriées afin de pouvoir les déplacer pour le moment.
Préparer des données japonaises est difficile car il est difficile de séparer les phrases, alors utilisons les données anglaises. Je résumerai le japonais à une date ultérieure.
Nom de fichier: input.txt Emplacement: training-lstm-master / [any_holder_name] /
Entrez le texte dans input.txt et enregistrez-le.
Des romans et des histoires en anglais gratuits sont disponibles. Si vous souhaitez l'utiliser comme un essai, je pense que vous pouvez simplement préparer les données originales à partir d'ici. Project Gutenberg
cd training-lstm-master
python train.py --data_path=./[any_holder_name]/input.txt
Une fois cette formation commencée et terminée, un fichier est généré dans models / input /.
Nous utiliserons ce groupe de fichiers dans ml5-examples qui sera expliqué plus tard.
J'avais la dernière version de tensorflow, mais j'étais en colère. (Je suis désolé pour l'erreur à ce moment-là, mais c'est devenu un millier de vents.)
Je n'avais pas d'autre choix que de mettre ** tensorflow 1.15.0 **.
Je dois le réécrire en une fonction de série 1, et ce qui suit dans train.py est modifié.
# hide logs
tf.logging.set_verbosity(tf.logging.ERROR)
↓
# hide logs
tf.compat.v1.logging.set_verbosity(tf.compat.v1.logging.ERROR)
Je n'ai pas encore parlé du frontal, donc je crains que ce soit bon comme un avènement ...
Je suis enfin arrivé à l'histoire du javascript. Maintenant, utilisons le modèle créé précédemment.
Télécharger ici ml5-examples
git clone https://github.com/ml5js/ml5-examples.git
J'utilise le package nodejs, donc c'est le package habituel
npm install
Déplacez les fichiers sous modèles / entrée / générés plus tôt.
Destination https://github.com/ml5js/ml5-examples/tree/release/p5js/CharRNN/CharRNN_Text/models/woolf
Exemple) Texte sur les chats ml5-examples-master/p5js/CharRNN/CharRNN_Text/models/cat
Texte sur la bonne aventure ml5-examples-master/p5js/CharRNN/CharRNN_Text/models/horoscope
Comme les modèles sont spécifiés dans sketch.js, remplacez "Woolf" par le nom du dossier créé précédemment sous les modèles.
charRNN = ml5.charRNN('./models/woolf/', modelReady);
https://github.com/ml5js/ml5-examples/blob/release/p5js/CharRNN/CharRNN_Text/sketch.js#L24
série python 3
python -m http.server
série python 2
python -m SimpleHTTPServer
Si vous ouvrez http: // localhost: 8000 /, vous verrez le répertoire.
Cliquez sur pl5js
Cliquez sur CharRNN
Cliquez sur CharRNN_Text
Vous atteindrez l'écran du générateur.
texte de départ: Première lettre à donner longueur: nombre de caractères que vous souhaitez générer température: poids / profondeur
seed text:happy length:100 Texte généré à température: 0,5
happy and the other grown herself, 'I was than the bottle my to little sing how the poor comly up and gut
seed text:happy length:100 Phrase générée par la température: 1
happys! All spomes wife a 'How finE it?' said 'Hares" should neven backed as much had right gaim--'
Le texte est incohérent.
Quelle phrase ai-je utilisée comme données? Vous pouvez trouver des indices dans ce dernier texte généré.
Indice "lapin".
Réponse: Les aventures d'Alice au pays des merveilles
La dernière phrase a une température de 1, elle devrait donc ressembler davantage aux aventures d'Alice au pays des merveilles qu'à la première (température: 0,5).
Certes, j'estime que le «lapin» et les «droits» sont comme ça.
Je veux en savoir plus sur ml5.CharRNN.
Si vous utilisez mecab et préparez des données de phrases japonaises, vous pourrez peut-être utiliser des phrases japonaises! J'ai entendu cela, alors je vais prendre le temps de l'essayer. Ce n'est pas complètement une question de javascript lol