在Linux / Docker集群上运行命令

时间:2019-01-25 10:59:26

标签: linux docker

我正在尝试在Docker集群上从github运行一个仓库,即this,我需要运行以下命令:

THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python -u ...

但是我每次都会收到此错误:

stdbuf: failed to run command 'THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32': No such file or directory

我对Linux比较陌生,无法解决。当我在计算机上运行时,没有任何问题。

我有一个建议使用python 2.7和theano 0.8的docker

2 个答案:

答案 0 :(得分:0)

这是因为这不是命令。你有任何文件吗?

答案 1 :(得分:0)

这不是命令,这是环境设置。您可以在运行命令之前设置变量。

即:

var=1 echo "$var"

要运行的命令是python。使用python2获取一个泊坞窗。

THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python -u models/three_tier/three_tier.py --exp BEST_3TIER --seq_len 512 --big_frame_size 8 --frame_size 2 --emb_size 256 --skip_conn False --dim 1024 --n_rnn 1 --rnn_type GRU --q_levels 256 --q_type linear --batch_size 128 --weight_norm True --learn_h0 True --which_set MUSIC

环境变量由外壳程序设置和导出。要将其作为docker的oneliner运行,您必须首先运行shell并将相关信息传递给它。另外,请注意Docker映像的ENTRYPOINT,如有需要,请覆盖它。

docker run some_image sh -c 'THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python -u models/three_tier/three_tier.py --exp BEST_3TIER --seq_len 512 --big_frame_size 8 --frame_size 2 --emb_size 256 --skip_conn False --dim 1024 --n_rnn 1 --rnn_type GRU --q_levels 256 --q_type linear --batch_size 128 --weight_norm True --learn_h0 True --which_set MUSIC'

这首先运行外壳程序sh。然后sh导出变量THEANO_FLAGS,其值为mode=FAST_RUN,device=gpu0,floatX=float32(整行是变量的值)。然后,它将其余行作为python程序的参数,调用$PATH命令(在python中搜索)。

或者(也许更干净),您可以使用docker的{​​{1}}选项,甚至可以将-e添加到dockerfile中:

ENV