keras将h5模型转onnx

这段代码展示了如何将一个基于Keras构建的DeepFace模型转换为ONNX格式。模型包含多个卷积层、池化层和全连接层,用于面部表情识别。转换过程使用了tf2onnx库,并保存为facial_expression_model.onnx。注意,安装onnxmltools可能需要降级protobuf版本。
摘要由CSDN通过智能技术生成

最近在转deepface的代码

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import (
    Conv2D,
    MaxPooling2D,
    AveragePooling2D,
    Flatten,
    Dense,
    Dropout,
)
import tf2onnx
num_classes = 7
model = Sequential()

# 1st convolution layer
model.add(Conv2D(64, (5, 5), activation="relu", input_shape=(48, 48, 1)))
model.add(MaxPooling2D(pool_size=(5, 5), strides=(2, 2)))

# 2nd convolution layer
model.add(Conv2D(64, (3, 3), activation="relu"))
model.add(Conv2D(64, (3, 3), activation="relu"))
model.add(AveragePooling2D(pool_size=(3, 3), strides=(2, 2)))

# 3rd convolution layer
model.add(Conv2D(128, (3, 3), activation="relu"))
model.add(Conv2D(128, (3, 3), activation="relu"))
model.add(AveragePooling2D(pool_size=(3, 3), strides=(2, 2)))

model.add(Flatten())

# fully connected neural networks
model.add(Dense(1024, activation="relu"))
model.add(Dropout(0.2))
model.add(Dense(1024, activation="relu"))
model.add(Dropout(0.2))

model.add(Dense(num_classes, activation="softmax"))

model.load_weights("facial_expression_model_weights.h5")

onnx_model, _ = tf2onnx.convert.from_keras(model)
import onnxmltools
onnxmltools.utils.save_model(onnx_model, 'facial_expression_model.onnx')
# tf2onnx.convert.export_onnx_model(onnx_model, 'facial_expression_model.onnx')
# tf2onnx.save_model(onnx_model, 'facial_expression_model.onnx')

这里注意安装了onnxmltool后会改变
protobuf的版本需要重新安装

pip install protobuf==3.20.0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值