我目前正在探索this page中的模型,并且不确定如何运行以下代码
python run_classifier.py
--task_name=cola
--do_train=true
--do_eval=true
--do_predict=true
--data_dir=./data/
--vocab_file=./cased_L-12_H-768_A-12/vocab.txt
--bert_config_file=./cased_L-12_H-768_A-12/bert_config.json
--init_checkpoint=./cased_L-12_H-768_A-12/bert_model.ckpt
--max_seq_length=400
--train_batch_size=8
--learning_rate=2e-5
--num_train_epochs=3.0
--output_dir=./bert_output/
--do_lower_case=False
我创建了一个文件夹,在该文件夹中我已从github下载所有代码。我在该文件夹中有文件run_classifier.py
。
在同一文件夹中,我创建了文件夹
data
,它具有3个tsv文件,如代码中所述。 bert_output
它是空的cased_L-12_H-768_A-12
,它具有模型的未压缩版本。
它具有文件bert_config.json
和bert_model.ckpt
,以及
vocab.txt
然后我转到anaconda命令提示符,并使用cd
命令和
(C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nnn\Documents\GitHub\bert>python run_classifier.py task_name=cola do_train=true do_eval=true do_predict=true data_dir=./data/ vocab_file=./cased_L-12_H-768_A-12/vocab.txt bert_config_file=./cased_L-12_H-768_A-12/bert_config.json init_checkpoint=./cased_L-12_H-768_A-12/bert_model.ckpt max_seq_length=400 train_batch_size=8 learning_rate=2e-5 num_train_epochs=3.0 output_dir=./bert_output/ do_lower_case=False
Traceback (most recent call last):
File "C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\absl\flags\_flagvalues.py", line 527, in _assert_validators
validator.verify(self)
File "C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\absl\flags\_validators.py", line 81, in verify
raise _exceptions.ValidationError(self.message)
absl.flags._exceptions.ValidationError: Flag --data_dir must be specified.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "run_classifier.py", line 981, in <module>
tf.app.run()
File "C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\tensorflow\python\platform\app.py", line 119, in run
argv = flags.FLAGS(_sys.argv if argv is None else argv, known_only=True)
File "C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\tensorflow\python\platform\flags.py", line 112, in __call__
return self.__dict__['__wrapped'].__call__(*args, **kwargs)
File "C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\absl\flags\_flagvalues.py", line 635, in __call__
self._assert_all_validators()
File "C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\absl\flags\_flagvalues.py", line 509, in _assert_all_validators
self._assert_validators(all_validators)
File "C:\Users\nnn\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\absl\flags\_flagvalues.py", line 530, in _assert_validators
raise _exceptions.IllegalFlagValueError('%s: %s' % (message, str(e)))
absl.flags._exceptions.IllegalFlagValueError: flag --data_dir=None: Flag --data_dir must be specified.
答案 0 :(得分:1)
您只是在标志前面缺少双破折号(--
):
python run_classifier.py ^
--task_name=cola ^
--do_train=true ^
--do_eval=true ^
--do_predict=true ^
--data_dir=./data/ ^
--vocab_file=./cased_L-12_H-768_A-12/vocab.txt ^
--bert_config_file=./cased_L-12_H-768_A-12/bert_config.json ^
--init_checkpoint=./cased_L-12_H-768_A-12/bert_model.ckpt ^
--max_seq_length=400 ^
--train_batch_size=8 ^
--learning_rate=2e-5 ^
--num_train_epochs=3.0 ^
--output_dir=./bert_output/ ^
--do_lower_case=False
(字符^
用于表示Windows提示符中的行继续,从而使命令的显示更整洁)
只要在执行脚本run_classifier.py
时传递参数,就可以在Spyder中运行它。