Метод to_json
Метод to_json класса Model возвращает строку JSON,
содержащую конфигурацию модели. Метод не принимает обязательных
параметров. Сериализации подлежит только архитектура модели:
слои, их параметры и связи между ними. Веса модели в JSON
не сохраняются, для этого используйте метод save_weights.
Синтаксис
model.to_json()
Пример
Давайте создадим простую модель и получим ее JSON-представление:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,)),
tf.keras.layers.Dense(1)
])
res = model.to_json()
print(res)
Результат выполнения кода:
{"class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": [null, 2], "dtype": "float32", "sparse": false, "ragged": false, "name": "dense_input"}}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "batch_input_shape": [null, 2], "dtype": "float32", "units": 3, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 1, "activation": "linear", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}]}, "keras_version": "2.15.0", "backend": "tensorflow"}
Пример
Давайте сохраним JSON-строку в файл 'model.json':
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,)),
tf.keras.layers.Dense(1)
])
res = model.to_json()
with open('model.json', 'w') as f:
f.write(res)
print('saved')
Результат выполнения кода:
"saved"
Пример
Давайте восстановим модель из JSON-строки с помощью
функции model_from_json и проверим ее архитектуру:
import tensorflow as tf
from tensorflow.keras.models import model_from_json
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, input_shape=(2,)),
tf.keras.layers.Dense(1)
])
res = model.to_json()
restored = model_from_json(res)
restored.summary()
Результат выполнения кода:
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 3) 9
dense_1 (Dense) (None, 1) 4
=================================================================
Total params: 13 (52.00 B)
Trainable params: 13 (52.00 B)
Non-trainable params: 0 (0.00 Byte)
_________________________________________________________________
Смотрите также
-
класс
Model,
который представляет модель Keras -
метод
to_yaml,
который сериализует модель в формат YAML -
метод
get_config,
который возвращает конфигурацию модели в виде словаря -
метод
save,
который сохраняет модель целиком вместе с весами