[PYTHON] [Tensorflowjs_converter] So konvertieren Sie das Tensorflow-Modell in das Format Tensorflow.js

Dieser Artikel zeigt, wie ein mit Tensorflow erstelltes Modell in ein Format konvertiert wird, das mit Tnesorflow.js verwendet werden kann.

Python-Umgebung

pip install tensorflowjs

tfjs-converter

Tensorflow.js (TF.js) kann vorhandene Modelle, die von Tensorflow (TF) trainiert wurden, wiederverwenden. tfjs-converter ist ein Befehlszeilenprogramm zum Konvertieren von TensorFlow-Modellen und unterstützt verschiedene Formate wie HDF5.

tensorflowjs_converter --help
usage: TensorFlow.js model converters. [-h]
                                       [--input_format {tensorflowjs,keras,tf_hub,keras_saved_model,tf_saved_model,tfjs_layers_model}]
                                      [--output_format {tfjs_graph_model,tfjs_layers_model,tensorflowjs,keras}]
                                       [--signature_name SIGNATURE_NAME]
                                       [--saved_model_tags SAVED_MODEL_TAGS]
                                       [--quantization_bytes {1,2}]
                                       [--split_weights_by_layer] [--version]
                                       [--skip_op_check SKIP_OP_CHECK]
                                       [--strip_debug_ops STRIP_DEBUG_OPS]
                                       [--weight_shard_size_bytes WEIGHT_SHARD_SIZE_BYTES]
                                       [input_path] [output_path]

Sie können das gespeicherte Modell von TF in ein Webformat konvertieren, das von TF.js mit dem folgenden Befehl gelesen werden kann.

tensorflowjs_converter \
    --input_format=tf_saved_model \
    /path/to/saved_model \
    /path/to/web_model

Für --input_format können andere Formate wie keras, keras_saved_model und tf_hub ausgewählt werden.

tragbares Format

Es kann an einem anderen Ort als dem Ort, an dem das Modell trainiert wird, wiederverwendet werden. Merkmal ist,

Die von Tensorflow generierten Dateien basieren auf dem Protokollpuffer. Daher ist es in vielen Programmiersprachen ein lesbares Format. Darüber hinaus sind Formate wie ONNX auch plattformunabhängige Formate. (Kann auch mit Pytorch usw. verwendet werden)

Modell speichern

So speichern Sie ein Modell in Tensorflow (Python).

mport tensorflow as tf
from tensorflow import keras

print(tf.__version__) #2.1

(train_images, train_labels), (test_images, test_labels) = tf.keras.datasets.mnist.load_data()

train_labels = train_labels[:1000]
test_labels = test_labels[:1000]

train_images = train_images[:1000].reshape(-1, 28 * 28) / 255.0
test_images = test_images[:1000].reshape(-1, 28 * 28) / 255.0

#Eine Funktion, die ein kurzes sequentielles Modell zurückgibt
def create_model():
  model = tf.keras.models.Sequential([
    keras.layers.Dense(512, activation='relu', input_shape=(784,)),
    keras.layers.Dropout(0.2),
    keras.layers.Dense(10, activation='softmax')
  ])
  
  model.compile(optimizer='adam', 
                loss='sparse_categorical_crossentropy',
                metrics=['accuracy'])
  
  return model

#Erstellen Sie eine Instanz des Grundmodells
model = create_model()
model.summary()

model.fit(train_images, train_labels, epochs=5)

#Speichern Sie das gesamte Modell in einer HDF5-Datei.
model.save('my_model.h5')
tf.saved_model.save(model, "./sample/model_data")
#imported = tf.saved_model.load("./sample/model_data")

Modellkonvertierung

Konvertieren Sie das in ./sample/model_data gespeicherte TF-Modell in ein Modell im TF.js-Format.

tensorflowjs_converter --input_format=tf_saved_model --output_node_names=output ./sample/model_data ./sample/model_tfjs_model

#HD5-Datenformat
tensorflowjs_converter --input_format keras my_model.h5 ./sample/hd5_model

#tf-Verwenden Sie das Hub-Modell
tensorflowjs_converter \
    --input_format=tf_hub \
    'https://tfhub.dev/google/imagenet/mobilenet_v1_100_224/classification/1' \
    ./my_tfjs_model

Was ist TF-Hub?

Tensorflow Hub ist eine Bibliothek, die Modelle für maschinelles Lernen usw. wiederverwenden kann. Sie können modernste Technologie für maschinelles Lernen verwenden, indem Sie das Modell laden und die Eingabe- und Ausgabeformate anpassen.

Modell laden

So laden Sie ein Modell mit Tensorflow.js.

import * as tf from '@tensorflow/tfjs';

const MODEL_URL = 'https://path/to/model.json';
const model = await tf.loadGraphModel(MODEL_URL);

// Or

const MODEL_PATH = 'file://path/to/model.json';
const model = await tf.loadGraphModel(MODEL_PATH);

Recommended Posts

[Tensorflowjs_converter] So konvertieren Sie das Tensorflow-Modell in das Format Tensorflow.js
So konvertieren Sie das Tensorflow-Modell in Lite
So konvertieren Sie das Format einfach aus Markdown
So konvertieren Sie Json-Dateien in das CSV- oder EXCEL-Format
So konvertieren Sie 0,5 in 1056964608 auf einmal
So installieren Sie TensorFlow unter CentOS 7
So konvertieren Sie von .mgz nach .nii.gz
So führen Sie TensorFlow 1.0-Code in 2.0 aus
[Python] So konvertieren Sie eine Datenbankdatei in CSV
Konvertieren Sie Daten im XML-Format in Daten im TXT-Format (yolov3)
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
So konvertieren Sie csv in tsv in CLI
So konvertieren Sie Python in eine exe-Datei
Konvertieren Sie das Matplotlib-Diagramm in das EMF-Dateiformat
Konvertieren Sie an E-Mails angehängte PDF-Dateien in das Textformat
Verwendung von Tensorflow unter Docker-Umgebung
Konvertieren Sie den Python-Datumstyp in das RFC822-Format
[Python --open3d] So konvertieren Sie 3D-Modellobjektdaten in Punktwolken
So konvertieren Sie von iTunes erworbenes m4a in wav
[Python] So ändern Sie das Datumsformat (Anzeigeformat)
So führen Sie CNN in 1 Systemnotation mit Tensorflow 2 aus
[Einführung in Python] Umgang mit Daten im JSON-Format
Konvertieren Sie Daten im JSON-Format in txt (mit yolo)
Tensorufuro, Tensafuro Immerhin welches (wie man Tensorflow liest)
Konvertieren von (32,32,3) in einen 4-dimensionalen Tensor (1,32,32,1) mit ndarray-Typ
[TF] So erstellen Sie Tensorflow in einer Proxy-Umgebung
[PyTorch] Beispiel ⑧ ~ So erstellen Sie ein komplexes Modell ~
Erfahren Sie, wie Sie Bilder aus dem TensorFlow-Code aufblasen
Konvertieren Sie Binärpakete für Windows in das Radformat
So erzwingen Sie, dass TensorFlow 2.3.0 für CUDA11 + cuDNN8 erstellt wird
Konvertieren Sie die Zeichenfolge mit Python in ein zeichenweises Listenformat
Zum HSV konvertieren
So konvertieren / wiederherstellen Sie einen String mit [] in Python
So erhalten Sie mehrere Modellobjekte zufällig in Django
So konvertieren Sie den Python # -Typ für Super-Anfänger von Python: str
Verwendung von Keras ~ Von der einfachen Modellgenerierung bis zum CNN ~
So konvertieren Sie horizontal gehaltene Daten mit Pandas in vertikal gehaltene Daten
So konvertieren Sie ein Klassenobjekt mit SQLAlchemy in ein Wörterbuch
Die Entscheidung von scikit-learn Wie man ein Holzmodell visualisiert
Konvertieren Sie Qiita-Artikel zur Sicherung in das Jekyll-Post-Format
Verwendung von TensorFlow auf GPUs unter Titan
Freigeben von Ordnern für Docker und Windows mit Tensorflow
So konvertieren Sie Gleitkommazahlen in Python in Binärzahlen
Ich habe einen Code erstellt, um illustration2vec in ein Keras-Modell zu konvertieren
So konvertieren Sie eine JSON-Datei mit Python Pandas in eine CSV-Datei
So konvertieren Sie ein Mel-Spektrogramm zurück in eine WAV-Datei
Konvertieren / Zurückgeben von Klassenobjekten in das JSON-Format in Python
So erstellen Sie eine Entwicklungsumgebung für TensorFlow (1.0.0) (Mac)
Verwendung des in Lobe in Python erlernten Modells
python, php, ruby Konvertieren von Dezimalzahlen in n
Konvertieren Sie die Übersetzungsressourcendatei (.po) in das XLIFF-Format (.xlf).
Konvertieren Sie die XML-Datei im Pascal-VOC-Format in die JSON-Datei im COCO-Format
[How to!] Lerne und spiele Super Mario mit Tensorflow !!
Verwendung des japanischen Spacy-Modells mit Google Colaboratory
[TF] Speichern und Laden von Tensorflow-Trainingsparametern