名称错误: 未定义名称'dot'



我正在使用Tensorflow和Keras.我写了代码,

from keras.layers import *    

match = dot([input_encoded_m, question_encoded], axes=(2, 2))

当我运行它时,

match = dot([input_encoded_m, question_encoded], axes=(2, 2))
NameError: name 'dot' is not defined

发生错误。我认为通过使用import *,可以调用点方法,但是这是错误的吗?我应该如何解决这个问题?

这就是你想要的

from keras.layers import dot
match = dot([input_encoded_m, question_encoded], axes=(2, 2))

只是对未来的建议:根本不要通过 * 导入,因为知道里面的内容可能会产生误导,并且使用相同的命名空间很容易出错。始终像使用import xxx一样导入完整的库(脚本(,或者只使用from xxx import xxx导入一些函数、类等,但切勿通过 * 导入。

dot是NumPy的一个函数,你只需用numpy.dot(x,y(调用它,它就可以正常工作...