gpt4 book ai didi

python - TFLite 的硬刷操作

转载 作者:行者123 更新时间:2023-12-01 06:21:28 26 4
gpt4 key购买 nike

我有一个用 Tensorflow.Keras 编写的自定义神经网络,并应用 Hard-swish 函数作为激活(如 MobileNetV3 论文中使用的那样):

$$h-swish = x \cdot \frac{ReLU6(x+3)}{6}$$).

实现:

def swish(x):
return x * tf.nn.relu6(x+3) / 6

我正在运行量化感知训练并在最后编写一个 protobuf 文件。然后,我使用此代码转换为 tflite(并最终将其部署在 EdgeTPU 上):

tflite_convert --output_file test.tflite --graph_def_file=test.pb --inference_type=QUANTIZED_UINT8 --input_arrays=input_1 --output_arrays=conv2d_3/Sigmoid --mean_values=0 --std_dev_values=255 --default_ranges_min=0 --default_ranges_max=6

当我不除以 6 时,这很有效,但是,当除以 6 时,我收到此错误:

Unimplemented: this graph contains an operator of type Div for which the quantized form is not yet implemented.

我正在使用 TF 1.14 进行训练,最后使用 TF 1.15 构建以转换为 TFLITE;我正在努力让 TF 2.x 解决一些奇怪的 HDF5 不兼容性问题,但如果有人知道如何规避这个问题,那就太好了...谢谢!

最佳答案

由于它是一个常数除法,因此您只需乘以(近似的)倒数即可:

def swish(x):
return x * tf.nn.relu6(x+3) * 0.16666667

关于python - TFLite 的硬刷操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60336568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com