如果 CSV 中没有尾随逗号,gnu-parallel 将无法工作

gnu-parallel doesn't work without trailing commas in CSV

我有以下并行命令 运行

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

在其他问题中,人们似乎是

有人知道我可以做什么不同的事情,这样我就不必在我的 CSV 中添加尾随逗号了吗? (这很烦人,因为它相当于一个空列,而 Google Sheets 在我尝试导出 my CSV 时会忽略空列。)

我无法产生你的错误。自 20120722 以来,我已经测试了 GNU Parallel 的每个版本,如果你删除最后一个 ,.

,所有版本都可以正常工作

所以还有其他事情正在发生。

它可以在您的环境中。你能找到另一台机器(例如来自 http://www.osboxes.org/virtualbox-images/ 的虚拟机)并且 运行 它在那里吗?

它可以在输入文件中。也许有些角色是看不见的?你能上传实际文件吗(最好是 zipped/gzipped 这样我们就知道里面没有任何变化)?