import tensorflow as tf import json import tensorflow.keras.models #这是独立的包 import tensorflow.keras mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(128, activation=‘relu’), tf.keras.layers.Dense(10, activation=‘softmax’) ])
model.compile(optimizer=‘adam’, loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False), metrics=[‘sparse_categorical_accuracy’])
model.fit(x_train, y_train, batch_size=32, epochs=5, validation_data=(x_test, y_test), validation_freq=1) model.summary() ‘’’ #保存为h5模型:使用model.save来保存模型,可以把模型的结构、权值参数和优化器的设置,代价函数的设置,metrics的设置全部保存下来 #提取方法:tensorflow.keras.models.load_model(“mymodel.h5”) #model.save(“mymodel.h5”) ‘’’ ‘’’ #SavedModel是Tensorflow中的一种模型格式,其优点是与语言无关,不加h5后缀,pb结构,variable权值,可用于除Sequential以外的模型 #model.save(“mymodel”) #只想保存模型的结构,而不保存模型的权值、优化器和代价函数等内容,主要使用json ‘’’ ‘’’ json_config=model.to_json() with open(“model.json”,“w”)as m: json.dump(json_config,m) #读取模型: with open(“model.json”) as m: json_config=json.load(m) model2=tensorflow.keras.models.model_from_json(json_config) model2.summary() ‘’’ ‘’’ 仅保存模型的参数: model.save_weights(‘path_to_my_model.h5’) #载入时,需先使用json导入模型结构,或定义好模型结构 model.load_weights(‘path_to_my_model.h5’) #还需要定义compile中的内容,包括优化器和代价函数等。因为model.save()会保存compile中的内容, 而model.save_weights只会保存模型的参数。所以,load_weights以后还需要重新定义compile的内容,这样才能进一步训练模型。 ‘’’
|