我正在研究CNTK,并收到以下错误:


  ValueError:在函数中找到2个未绑定的占位符'Placeholder('keep',[#,*],[939]),Placeholder('keep',[#,*],[939])'。在执行正向计算之前,必须将功能的所有占位符绑定(绑定到变量)。




for i in range(10000):
    a1,a2,tar=get_sample(minibatch_size,start)
    start=start+int(minibatch_size)
    if start>=int(0.8*float(len(lab)))-minibatch_size:
       start=0
    trainer.train_minibatch({P1: a1, P2: a2, target: tar})





  P1和P2定义为C.layers.Input(939)

最佳答案

我能够解决我的问题。我必须将模型输出而不是模型本身作为参数传递给Trainer构造函数。

模型= cntk.layers.Sequential([l1,l2])

model_output =模型(预测变量)

错误:
培训师= cntk.train.trainer.Trainer(model,(loss,meas),[learner])

没有错误:
培训师= cntk.train.trainer.Trainer(model_output,(loss,meas),[learner])

08-24 23:21