Функция model_from_json
Функция model_from_json восстанавливает
архитектуру модели Keras из JSON-строки.
Первым параметром функция принимает строку
JSON с описанием архитектуры. Вторым
необязательным параметром можно передать
словарь custom_objects для регистрации
пользовательских слоев, функций активации и
других объектов, которые использовались в
модели. Функция возвращает необученную
модель, поэтому после восстановления
архитектуры веса обычно загружают отдельно
через метод load_weights.
Синтаксис
tf.keras.models.model_from_json(json_string, [custom_objects])
Пример
Давайте создадим простую модель, сохраним ее архитектуру в JSON-строку и восстановим обратно:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, activation='relu', input_shape=(3,)),
tf.keras.layers.Dense(1)
])
json_string = model.to_json()
res = tf.keras.models.model_from_json(json_string)
res.summary()
Результат выполнения кода:
Model: "sequential"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type) ┃ Output Shape ┃ Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ dense (Dense) │ (None, 4) │ 16 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense_1 (Dense) │ (None, 1) │ 5 │
└─────────────────────────────────┴────────────────────────┴───────────────┘
Total params: 21 (84.00 B)
Trainable params: 21 (84.00 B)
Non-trainable params: 0 (0.00 B)
Пример
Давайте восстановим архитектуру модели, обучим ее и проверим работу на данных:
import tensorflow as tf
import numpy as np
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(4, activation='relu', input_shape=(3,)),
tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse')
json_string = model.to_json()
res = tf.keras.models.model_from_json(json_string)
res.compile(optimizer='adam', loss='mse')
x = np.array([[1, 2, 3], [4, 5, 6]])
y = np.array([[1], [2]])
res.fit(x, y, epochs=1, verbose=0)
print(res.predict(x, verbose=0).shape)
Результат выполнения кода:
(2, 1)
Пример
Давайте сохраним архитектуру модели в файл
'model.json' и восстановим ее из
содержимого файла:
import tensorflow as tf
import json
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, activation='relu', input_shape=(2,)),
tf.keras.layers.Dense(1)
])
json_string = model.to_json()
with open('model.json', 'w') as f:
json.dump(json_string, f)
with open('model.json', 'r') as f:
loaded_json = json.load(f)
res = tf.keras.models.model_from_json(loaded_json)
print(res.input_shape)
Результат выполнения кода:
(None, 2)
Смотрите также
-
функцию
load_model,
которая загружает модель целиком из файла -
функцию
save_model,
которая сохраняет модель целиком в файл -
функцию
clone_model,
которая создает копию архитектуры модели -
функцию
plot_model,
которая строит схему архитектуры модели