用包含tensorflow FLAGS的文件编写bash脚本



我有一些包含tensorflow标志的tensorflow代码,如下所示:

from tensorflow.python.platform import flags
FLAGS = flags.FLAGS
## Logging, saving, and testing options
flags.DEFINE_bool('log', True, 'if false, do not log summaries, for debugging code.')
flags.DEFINE_string('logdir', 'trained_mdl/', 'directory for summaries and checkpoints.')
flags.DEFINE_bool('resume', True, 'resume training if there is a model available')
flags.DEFINE_bool('train', False, 'True to train, False to test.')
flags.DEFINE_integer('test_iter', -1, 'iteration to load model (-1 for latest model)')
flags.DEFINE_bool('test_set', True, 'Set to true to test on the the test set, False for the validation set.')
flags.DEFINE_integer('train_update_batch_size', -1, 'number of examples used for gradient update during training (use if you want to test with a different number).')
flags.DEFINE_float('train_update_lr', -1, 'value of inner gradient step step during training. (use if you want to test with a different value)') # 0.1 for omniglot

我想运行几次,为此,我编写了一个bash脚本,如下所示:

#!/usr/bin/env bash
python main.py
--meta_batch_size 8
--train True
--test_set False
> main1_train.txt

但是它重新开始,然后永远不会执行。bash与tensorflow标志不工作吗?如果那样的话,我就没有别的选择了,只能用argparse代替FLAGS了?

更新1

我得到以下错误:

run_main1.sh: line 5: --meta_batch_size: command not found
run_main1.sh: line 6: --train: command not found
run_main1.sh: line 7: --test_set: command not found

尝试:

#!/usr/bin/env bash
python main.py 
--meta_batch_size 8 
--train True 
--test_set False 
> main1_train.txt

在bash中,换行符就像按回车键。"——meta_batch_size 8";被视为命令,而被执行。因此,您必须在行尾使用,使其成为脚本的参数。

最新更新