tensorflow2之模型載入恢復 h5

2021-09-26 03:42:59 字數 1550 閱讀 2868

建立 model_hand_h5_load.py

#encoding=utf-8

# 手動建立和載入 *.h5 模型和權重值

from __future__ import absolute_import, division, print_function, unicode_literals

import os

import tensorflow as tf

from tensorflow import keras

print(tf.version.version)

(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

# # 定義乙個簡單的序列模型

# 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')

# ])

# return model

# # 建立乙個基本的模型例項

# model = create_model()

# # 顯示模型的結構

# model.summary()

# 建立和原先儲存的my_model一樣結構的模型,並載入權重

new_model = tf.keras.models.load_model('my_model.h5')

new_model.summary()

# evaluate the model

loss,acc = new_model.evaluate(test_images, test_labels)

print("restored model, accuracy: %".format(100*acc))

print(new_model.predict(train_images[:1])) # [[2.5317803e-04 7.2924799e-04 1.4610562e-03 7.4771196e-02 9.9087765e-06

# 9.1992557e-01 2.5099045e-05 9.3348324e-04 1.7478490e-03 1.4335765e-04]]

tensorflow2定義很多模型對記憶體的釋放

keras作為tensorflow的後端,管理全域性狀態,它用來實現功能模型構建api和統一自動生成的層名。如果需要在乙個迴圈中建立許多模型,keras的全域性狀態消耗越來越多的記憶體。可以通過呼叫clear session 釋放全域性狀態,這有助於避免舊模型和層的混亂,特別是在記憶體有限的時候。在...

TensorFlow2學習八之資料增強

影象增強 對影象的簡單形變。tensorflow2影象增強函式tf.keras.preprocessing.image.imagedatagenerator image gen train tf.keras.preprocessing.image.imagedatagenerator rescale...

tensorflow2的資料載入

對於一些小型常用的資料集,tensorflow有相關的api可以呼叫 keras.datasets 經典資料集 1 boston housing 波士頓房價 2 mnist fasion mnist 手寫數字集 時髦品集 3 cifar10 100 物象分類 4 imdb 電影評價 使用 tf.da...