Чтобы использовать пользовательскую модель со слоем re snet в примере команды тензор потока речи - PullRequest
0 голосов
/ 12 апреля 2020

На основе примера тензорного потока (https://github.com/tensorflow/tensorflow/tree/r1.13/tensorflow/examples/speech_commands) я собираюсь создать собственную модель речевой команды, используя слой re snet на основе этого документа (https://github.com/tensorflow/docs/blob/master/site/en/r1/tutorials/sequences/audio_recognition.md#customizing - -модель ) и использовать его на Android.

Поэтому я добавил функцию для добавления моей модели здесь на https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/examples/speech_commands/models.py#L140.

def create_resnet_model(fingerprint_input, model_settings, is_training):
  from keras.applications import ResNet50
  model = ResNet50(input_tensor=fingerprint_input, include_top=False, weights=None, pooling='max')
  return model.output
Traceback (most recent call last):
  File "D:/lab/speech/tensorflow-r1.13/tensorflow/examples/speech_commands/train.py", line 452, in <module>
    tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\platform\app.py", line 125, in run
    _sys.exit(main(argv))
  File "D:/lab/speech/tensorflow-r1.13/tensorflow/examples/speech_commands/train.py", line 139, in main
    is_training=True)
  File "D:\lab\speech\tensorflow-r1.13\tensorflow\examples\speech_commands\models.py", line 141, in create_model
    return create_resnet_model(fingerprint_input, model_settings, is_training)
  File "D:\lab\speech\tensorflow-r1.13\tensorflow\examples\speech_commands\models.py", line 160, in create_resnet_model
    model = ResNet50(input_tensor=fingerprint_input, include_top=False, weights=None, pooling='max')
  File "C:\Users\run19\Anaconda3\lib\site-packages\keras\applications\__init__.py", line 20, in wrapper
    return base_fun(*args, **kwargs)
  File "C:\Users\run19\Anaconda3\lib\site-packages\keras\applications\resnet50.py", line 11, in ResNet50
    return resnet50.ResNet50(*args, **kwargs)
  File "C:\Users\run19\Anaconda3\lib\site-packages\keras_applications\resnet50.py", line 225, in ResNet50
    x = layers.ZeroPadding2D(padding=(3, 3), name='conv1_pad')(img_input)
  File "C:\Users\run19\Anaconda3\lib\site-packages\keras\engine\base_layer.py", line 489, in __call__
    output = self.call(inputs, **kwargs)
  File "C:\Users\run19\Anaconda3\lib\site-packages\keras\layers\convolutional.py", line 2233, in call
    data_format=self.data_format)
  File "C:\Users\run19\Anaconda3\lib\site-packages\keras\backend\tensorflow_backend.py", line 2787, in spatial_2d_padding
    return tf.pad(x, pattern)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\ops\array_ops.py", line 2299, in pad
    result = gen_array_ops.pad(tensor, paddings, name=name)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\ops\gen_array_ops.py", line 5539, in pad
    "Pad", input=input, paddings=paddings, name=name)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\framework\op_def_library.py", line 788, in _apply_op_helper
    op_def=op_def)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\util\deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 3300, in create_op
    op_def=op_def)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1823, in __init__
    control_input_ops)
  File "C:\Users\run19\Anaconda3\lib\site-packages\tensorflow\python\framework\ops.py", line 1662, in _create_c_op
    raise ValueError(str(e))
ValueError: Shape must be rank 4 but is rank 2 for 'conv1_pad/Pad' (op: 'Pad') with input shapes: [?,3920], [4,2].

Process finished with exit code 1

Интересно, как мне установить соединение?

...