python - IO错误: [Errno 21] Is a directory: '/tmp/speech_dataset/'

标签 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 语音识别经验并知道问题可能出在哪里吗?

提前谢谢您!

最佳答案

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

TensorFlow 文档存在一些困惑。我认为 --data-url 参数应该获取我的数据集的路径,但只有当您想从某处下载某些数据集时才应使用此参数。如果您有自己的数据集,则需要将其显式定义为空白,即将以下内容提供给您的命令 --data-url=--data-dir 应该是您的数据集的路径。

关于python - IO错误: [Errno 21] Is a directory: '/tmp/speech_dataset/' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50192731/

相关文章:

python - TensorFlow 从多个 GPU 中选择要使用的 GPU

text - weka 中的一元类文本分类?

python - 多元正态的 Numpy 向量化

python - Google 图表 y 轴值

python - Tensorflow : What is the relationship between . ckpt 文件和 .ckpt.meta 和 .ckpt.index 和 .pb 文件

linux - 在 gpu 上运行 tensorflow

python-3.x - 为什么 sklearn 中的岭回归和套索回归需要 random_state?

python - 对于神经网络,学习率是否应该以某种方式与隐藏层大小成正比?他们应该互相影响吗?

python - 将图像插入基材

Python 可继承函数