尝试使用与自述文件中的命令相同的命令来运行tensorflow nmt(tf-1.4分支)预训练的模型示例,用于德语-英语(https://github.com/tensorflow/nmt/tree/tf-1.4#standard-hparams)
python -m nmt.nmt \
--src=de --tgt=en \
--ckpt=pretrained_models\german2eng\deen_gnmt_model_4_layer\translate.ckpt.index \
--hparams_path=nmt\standard_hparams\wmt16_gnmt_4_layer.json \
--out_dir=tmp\deen_gnmt \
--vocab_prefix=tmp\wmt16\vocab.bpe.32000 \
--inference_input_file=tmp\wmt16\newstest2014.tok.bpe.32000.de \
--inference_output_file=tmp\deen_gnmt\output_infer
--inference_ref_file=tmp\wmt16\newstest2014.tok.bpe.32000.en
但是在win32和tensorflow-gpu-1.5.0上,python 3.5.4 64bit(amd64)出现以下错误
ValueError:尺寸必须相等,但对于3072和2048 'dynamic_seq2seq / decoder / decoder / while / BeamSearchDecoderStep / multi_rnn_cell / cell_1 / basic_lstm_cell / MatMul' (op:'MatMul'),其输入形状为[?,3072],[2048,4096]
还尝试使用master分支(https://github.com/tensorflow/nmt/tree/master#standard-hparams)运行它,这显然需要每晚进行一次tf构建,但这给了我不同的错误。
在Win32和tensorflow-nightly-gpu(1.8.0-dev20180329)上使用python3.6.5 64bit(amd64)在Anaconda虚拟环境中运行它,并得到以下错误:
NotFoundError(请参阅上面的回溯):张量名称“变量”不是 在检查点文件中找到 pretrained_models \ german2eng \ deen_gnmt_model_4_layer \ translate.ckpt.index [[节点:保存/还原V2 =还原V2 [dtypes = [DT_INT32,DT_FLOAT,DT_FLOAT,DT_FLOAT,DT_FLOAT,...,DT_FLOAT,DT_FLOAT,DT_FLOAT, DT_FLOAT,DT_FLOAT], _device =“ / job:localhost /副本:0 / task:0 / device:CPU:0”](_ arg_save / Const_0_0, 保存/恢复V2 / tensor_names,保存/恢复V2 / shape_and_slices)]] [[节点:保存/恢复V2 / _29 = _Recvclient_terminated = false,recv_device =“ / job:localhost /副本:0 /任务:0 /设备:GPU:0”, send_device =“ / job:localhost /副本:0 / task:0 / device:CPU:0”, send_device_incarnation = 1,tensor_name =“ edge_39_save / RestoreV2”, tensor_type = DT_FLOAT, _device =“ / job:localhost /副本:0 / task:0 / device:GPU:0”]]