YAMNet模型可以与hub.KerasLayer一起使用吗?

问题描述 投票:0回答:1

我正在尝试使用 YAMNet 进行迁移学习来执行语音命令识别。我计划使用简单音频项目中的迷你语音命令数据集来训练模型。目标是在 Android 设备上部署经过训练的模型。

我编写了以下代码,使用 YAMNet 架构和用于语音命令识别的自定义分类器创建一个新模型:

import tensorflow as tf
import tensorflow_hub as hub

num_classes = 8
waveform = np.zeros(3 * 16000, dtype=np.float32)
new_model = tf.keras.Sequential([
    hub.KerasLayer("https://tfhub.dev/google/yamnet/1", output_key='embeddings', output_shape=[None, 1024], trainable=False),
    tf.keras.layers.Dense(num_classes, activation='softmax')
])
new_model.build(waveform)

new_model.summary()

但是,我在尝试运行此设置时遇到错误:

    "name": "TypeError",
    "message": "Dimension value must be integer or None or have an __index__ method, got value '0.0' with type '<class 'numpy.float32'>'",

我怀疑该错误可能与输入的处理方式有关,或者可能与 YAMNet 的 KerasLayer 配置存在问题。任何人都可以帮助确定可能导致此错误的原因并建议如何解决它吗?

04-25-2024 更新了我的代码,出现错误。

python tensorflow tf.keras keras-layer transfer-learning
1个回答
0
投票

您报告的问题是input_dimension问题。

new_model.build(waveform.reshape(1, 3, 16000))
© www.soinside.com 2019 - 2024. All rights reserved.