我正在遵循 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/