如何减小“.h5”中的模型文件大小
How to reduce model file size in ".h5"
我使用的是tensorflow和keras 2.8.0版本。
我有以下网络:
#defining model
model=Sequential()
#adding convolution layer
model.add(Conv2D(256,(3,3),activation='relu',input_shape=(256,256,3)))
#adding pooling layer
model.add(MaxPool2D(2,2))
#adding fully connected layer
model.add(Flatten())
model.add(Dense(100,activation='relu'))
#adding output layer
model.add(Dense(len(classes),activation='softmax'))
#compiling the model
model.compile(loss='sparse_categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
#fitting the model
model.fit(x_tr,y_tr,epochs=epochs, )
# Alla 12-esima epoca, va a converge a 1
# batch size è 125 credo, non so il motivo
#evaluting the model
loss_value, accuracy = model.evaluate(x_te, y_te)
#loss_value, accuracy, top_k_accuracy = model.evaluate(x_te, y_te, batch_size=batch_size)
print("loss_value: " + str(loss_value))
print("acuracy: " + str(accuracy))
#predict first 4 images in the test set
ypred = model.predict(x_te)
重点是,现在我正在尝试以“.h5”格式保存模型,但如果我训练它 100 次或 1 次,我将得到一个 4.61Gb 文件模型。
为什么这个文件这么大?
我怎样才能减小这个模型的大小?
一般原因:您的 h5 文件的大小仅取决于您的模型具有的参数数量。
构建模型后添加行 model.summary()
并查看模型的一般参数数量。
减小模型大小的步骤:你的转换层中有很多过滤器。由于我不知道你想用你的模型实现什么,我仍然建议你将过滤器的数量分开到不同的 conv 层,并在它们之间添加 Pooling
层。这将缩小图像,尤其是减少 Flatten
层的参数数量。
有关 Pooling
层的更多信息,请参见 here。
我使用的是tensorflow和keras 2.8.0版本。
我有以下网络:
#defining model
model=Sequential()
#adding convolution layer
model.add(Conv2D(256,(3,3),activation='relu',input_shape=(256,256,3)))
#adding pooling layer
model.add(MaxPool2D(2,2))
#adding fully connected layer
model.add(Flatten())
model.add(Dense(100,activation='relu'))
#adding output layer
model.add(Dense(len(classes),activation='softmax'))
#compiling the model
model.compile(loss='sparse_categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
#fitting the model
model.fit(x_tr,y_tr,epochs=epochs, )
# Alla 12-esima epoca, va a converge a 1
# batch size è 125 credo, non so il motivo
#evaluting the model
loss_value, accuracy = model.evaluate(x_te, y_te)
#loss_value, accuracy, top_k_accuracy = model.evaluate(x_te, y_te, batch_size=batch_size)
print("loss_value: " + str(loss_value))
print("acuracy: " + str(accuracy))
#predict first 4 images in the test set
ypred = model.predict(x_te)
重点是,现在我正在尝试以“.h5”格式保存模型,但如果我训练它 100 次或 1 次,我将得到一个 4.61Gb 文件模型。
为什么这个文件这么大? 我怎样才能减小这个模型的大小?
一般原因:您的 h5 文件的大小仅取决于您的模型具有的参数数量。
构建模型后添加行 model.summary()
并查看模型的一般参数数量。
减小模型大小的步骤:你的转换层中有很多过滤器。由于我不知道你想用你的模型实现什么,我仍然建议你将过滤器的数量分开到不同的 conv 层,并在它们之间添加 Pooling
层。这将缩小图像,尤其是减少 Flatten
层的参数数量。
有关 Pooling
层的更多信息,请参见 here。