IOError:[Errno 21]是一个目录:'/ tmp / speech_dataset /'

时间:2018-05-05 18:25:29

标签: python tensorflow machine-learning io

我正在关注TensorFlow的语音识别教程(链接:https://www.tensorflow.org/versions/master/tutorials/audio_recognition#advanced_training),当我运行以下命令时,它会下载TensorFlow提供的数据集,它运行完美。

python tensorflow/examples/speech_commands/train.py

但是,当我更改默认值时,它指向我的数据集,它会抛出以下错误:

Traceback (most recent call last):
  File "/home/users2/lmn/.local/lib/python2.7/site-packages/tensorflow/examples/speech_commands/train.py", line 428, in <module>
    tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
  File "/home/users2/lmn/.local/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 126, in run
    _sys.exit(main(argv))
  File "/home/users2/lmn/.local/lib/python2.7/site-packages/tensorflow/examples/speech_commands/train.py", line 106, in main
    FLAGS.testing_percentage, model_settings)
  File "/home/users2/lmn/.local/lib/python2.7/site-packages/tensorflow/examples/speech_commands/input_data.py", line 158, in __init__
    self.maybe_download_and_extract_dataset(data_url, data_dir)
  File "/home/users2/lmn/.local/lib/python2.7/site-packages/tensorflow/examples/speech_commands/input_data.py", line 204, in maybe_download_and_extract_dataset
    tarfile.open(filepath, 'r:gz').extractall(dest_directory)
  File "/usr/lib64/python2.7/tarfile.py", line 1693, in open
    return func(name, filemode, fileobj, **kwargs)
  File "/usr/lib64/python2.7/tarfile.py", line 1740, in gzopen
    fileobj = gzip.GzipFile(name, mode, compresslevel, fileobj)
  File "/usr/lib64/python2.7/gzip.py", line 94, in __init__
    fileobj = self.myfileobj = __builtin__.open(filename, mode or 'rb')
IOError: [Errno 21] Is a directory: '/tmp/speech_dataset/' 

我正在运行的命令是:

python tensorflow/examples/speech_commands/train.py --data_url=path/to/data/ --sample_rate=20000 --wanted_words=one,two,three,four,five,six,seven,eight,nine

现在,错误说'/ tmp / speech_dataset /'是一个目录,但我想它正在期待一个文件。当我查看train.py文件时,找到了以下代码:

parser.add_argument(
      '--data_dir',
      type=str,
      default='/tmp/speech_dataset/',
      help="""\
      Where to download the speech training data to.
      """)

--data-dir参数定义应存储下载数据集中文件的位置。但是,我根本没有改变,代码也不需要保存任何数据,因为我已经在我的计算机上有数据,我在--data-url参数定义它们。在我看来,这是来自TensorFlow的错误。

有没有人在TensorFlow上有语音识别经验,知道问题可能在哪里?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我解决了这个问题,所以如果有人遇到同样的问题,我会在这里发帖。

TensorFlow文档存在一些混淆。我认为--data-url参数应该获取我的数据集的路径,但只有当你想从某个地方下载一些数据集时才应该使用这个参数。如果您拥有自己的数据集,则需要将其明确定义为空白,即将以下内容添加到命令--data-url=中,然后--data-dir应该是数据集的路径。