有很多方法可以保存模型及其权重。当有如此多的方法但没有任何来源可以读取和比较它们的属性时,这是令人困惑的。
我知道的一些格式是:
1. YAML 文件 - 仅结构
2. JSON 文件 - 仅结构
3. H5 完整模型 - Keras
4. 仅 H5 权重 - Keras
5. ProtoBuf - 使用 TensorFlow 服务进行部署
6. Pickle - Scikit-学习
7. Joblib - Scikit-learn - Pickle 的替代品,用于包含大数据的对象。
讨论:
与 scikit-learn 不同,Keras 不建议您使用 pickle 保存模型。相反,模型将保存为 HDF5 文件。HDF5 文件包含加载模型进行预测(即架构和训练参数)以及重新启动训练(即损失和优化器设置以及当前状态)所需的一切。
用于保存 Scikit-learn、Keras、Tensorflow 和 Mxnet 模型的其他格式还有哪些?另外,关于上述每种格式,我还缺少哪些信息?
我正在数据集https://www.kaggle.com/jessicali9530/celeba-dataset上开发自动编码器 。
import tensorflow
tensorflow.__version__
Run Code Online (Sandbox Code Playgroud)
输出:
'2.2.0-rc3'
Run Code Online (Sandbox Code Playgroud)
from tensorflow.keras.preprocessing import image
data_gen = image.ImageDataGenerator(rescale=1.0/255)
batch_size = 20
train_data_gen = data_gen.flow_from_directory(directory=train_dest_path,
target_size=(256, 256),
batch_size=batch_size,
shuffle=True,
class_mode = 'input')
test_data_gen = data_gen.flow_from_directory(directory=test_dest_path,
target_size=(256,256),
batch_size=batch_size,
shuffle=True,
class_mode= 'input')
# autoencoder
from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, UpSampling2D
from tensorflow.keras import Model
from tensorflow.keras.optimizers import Adam, SGD
#parameters
inchannel = 3
x, y = 256, 256
input_img = Input(shape=(x,y,inchannel))
def autoencoder_model(input_img):
#encoder
conv1 = Conv2D(32, kernel_size=(3,3), activation='relu', padding='same')(input_img)
pool1 = MaxPooling2D(pool_size=(2,2))(conv1)
conv2 …Run Code Online (Sandbox Code Playgroud)