tensorflow nmt加载用于推理的预训练模型

时间:2018-06-26 07:45:53

标签: python tensorflow

尝试使用与自述文件中的命令相同的命令来运行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”]]

0 个答案:

没有答案