如果没有在CSV中尾随逗号,则gnu-parallel不起作用

时间:2019-07-30 22:06:06

标签: csv gnu-parallel

我有以下运行的并行命令

parallel --header : --colsep , \
  python -m imitation.scripts.train \
  with \
  "$@" \
  gail \
  {env_config} \
  log_root="${OUTPUT_DIR}" \
  init_trainer_kwargs.rollout_glob=expert_models/rollouts/{rollout_glob} \
  init_trainer_kwargs.n_expert_demos={n_demonstrations} \
  :::: experiments/gail_benchmark_config.csv

从以下csv文件中提取{rollout_glob}{n_demonstrations}{env_config}

$ cat -vet experiments/gail_benchmark_config.csv | head
env_config,rollout_glob,n_gen_steps_per_epoch,n_epochs,n_demonstrations^M$
cartpole,CartPole-v1.pkl,5000,300,1^M$
cartpole,CartPole-v1.pkl,5000,300,4^M$
cartpole,CartPole-v1.pkl,5000,300,7^M$
cartpole,CartPole-v1.pkl,5000,300,10^M$
mountain_car,MountainCar-v0.pkl,5000,300,1^M$
mountain_car,MountainCar-v0.pkl,5000,300,4^M$
mountain_car,MountainCar-v0.pkl,5000,300,7^M$
mountain_car,MountainCar-v0.pkl,5000,300,10^M$
acrobot,Acrobot-v1.pkl,5000,300,1^M$

似乎parallel无法正确读取n_demonstrations,因此{n_demonstrations}未被填充。我需要在每个CSV行的末尾添加一个逗号,以使我的parallel脚本正常工作。

示例错误生成的命令:

python -m imitation.scripts.train with gail cartpole [...] init_trainer_kwargs.n_expert_demos={n_demonstrations} seed=0

在其他问题中,人们似乎是reading CSVs fine without using these trailing commas

有人知道我可以做些什么,以便不必在CSV末尾添加逗号吗? (这很烦人,因为它等效于一个空列,当我尝试导出my CSV时,Google表格会忽略空列。)

1 个答案:

答案 0 :(得分:2)

我无法产生您的错误。自20120722以来,我已经测试了GNU Parallel的每个版本,并且如果删除了最后一个,,一切都可以正常工作。

所以还有其他事情发生。

它可以在您的环境中。您能找到另一台计算机(例如http://www.osboxes.org/virtualbox-images/中的VM)并在那里运行吗?

它可以在输入文件中。也许有些字符是不可见的?您可以上传实际文件(最好压缩/压缩,以便我们不知道其中的任何更改)吗?