|
楼主python小白一个,只有C/C++基础。最近在研究一段关于强化学习NEC的算法,在看到args.layer_sizes = [int(i) for i in (args.layer_sizes.split(',') if args.layer_sizes else [])]这句话时候疑惑不解,for 后边加if是什么意思,for后边还没有加“:”这个语句为什么还合法?有没有什么相似的例子呢,多谢!
- if __name__ == '__main__':
- parser = argparse.ArgumentParser()#创建一个解析对象
- parser.add_argument('--env', type=str, default='CartPole-v0',
- help='Name of Gym environment')#向该对象中添加要关注的命令行参数和选项。
- parser.add_argument('--training_iters', type=int, default=500000,
- help='Number of training iterations to run for')
- parser.add_argument('--display_step', type=int, default=2500,
- help='Number of iterations between parameter prints')
- parser.add_argument('--memory_size', type=int, default=1000,
- help='Size of DND dictionary')
- parser.add_argument('--replay_memory_size', type=int, default=1000,
- help='Size of replay memory')
- parser.add_argument('--batch_size', type=int, default=32,
- help='Size of batch for Q-value updates')
- parser.add_argument('--beta', type=float, default=0, # see particle value functions
- help='Beta for adjusted returns')
- parser.add_argument('--discount', type=float, default=0.9,
- help='Discount factor')
- parser.add_argument('--epsilon', type=float, default=0.1,
- help='Initial epsilon')
- parser.add_argument('--epsilon_final', type=float, default=None,
- help='Final epsilon')
- parser.add_argument('--epsilon_anneal', type=int, default=None,
- help='Epsilon anneal steps')
- parser.add_argument('--learning_rate', type=float, default=0.001,
- help='Learning rate for TD updates')
- parser.add_argument('--reg', type=float, default=0, #0.1 seems to work here
- help='Regularization parameter for network')
- parser.add_argument('--layer_sizes', type=str, default='64',
- help='Hidden layer sizes for network, separate with comma')
- parser.add_argument('--chk_dir', type=str, default=None,
- help='data directory to save checkpoints')
- parser.add_argument('--chk_name', type=str, default='model',
- help='Name to save checkpoints as')
- parser.add_argument('--resume_from', type=str, default=None,
- help='Location of checkpoint to resume from')
- parser.add_argument('--play_from', type=str, default=None,
- help='Location of checkpoint to play game from (remember, you need the same layer sizes!)')
- args = parser.parse_args()#调用parse_args()方法进行解析。
- if args.epsilon_final == None:
- args.epsilon_final = args.epsilon
- if args.epsilon_anneal == None:
- args.epsilon_anneal = args.training_iters
- args.layer_sizes = [int(i) for i in (args.layer_sizes.split(',') if args.layer_sizes else [])]
- print args
- tf.app.run()
复制代码
|
|