как сохранить модель Keras? - PullRequest
0 голосов
/ 07 декабря 2018

Я выполняю тонкую настройку универсального кодировщика предложений в моем наборе данных.но после тренировки модели я не могу сохранить ее на свой жесткий диск.вот мой код:

from tensorflow.python.keras import layers
from tensorflow.python.keras.models import Model
import tensorflow_hub as hub

def create_model():
    module_url = "https://tfhub.dev/google/universal-sentence-encoder-large/3"
    embed = hub.Module(module_url)
    embed_size = embed.get_output_info_dict()['default'].get_shape()[1].value
    def UniversalEmbedding(x):
        return embed(tf.squeeze(tf.cast(x, tf.string)), signature="default", as_dict=True)["default"]

    input_text = layers.Input(shape=(1,), dtype=tf.string)
    embedding = layers.Lambda(UniversalEmbedding, output_shape=(embed_size,))(input_text)
    dense = layers.Dense(256, activation='relu')(embedding)
    pred = layers.Dense(2, activation='softmax')(dense)
    model = Model(inputs=[input_text], outputs=pred)
    return model

model = create_model()
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

from tensorflow.python.keras import backend as K
import pickle

with tf.Session() as session:
    K.set_session(session)
    session.run(tf.global_variables_initializer())
    session.run(tf.tables_initializer())
    history = model.fit(train_text, 
            train_label,
            validation_data=(test_text, test_label),
            epochs=2,
            batch_size=16)
    model.save('./model.h5')

и вот ошибка, которую я получил:

TypeError: can't pickle _thread.RLock objects

, пожалуйста, помогите мне сохранить мою модель.

...