【问题】:
self.op = tf.linalg.LinearOperatorLowerTriangular(tf.transpose(self.ones,[0,3,1,2]))
tensorflow 1.9.0 下使用上述代码引发如下问题:
AttributeError: module 'tensorflow.contrib.linalg' has no attribute 'LinearOperatorTriL'
【原因】:
because of upgrade of version , function has been changed to LinearOperatorLowerTriangular.
【解决办法1】:
self.op = tf.contrib.linalg.LinearOperatorTriL(tf.transpose(self.ones,[0,3,1,2]))
修改为:
self.op = tf.linalg.LinearOperatorLowerTriangular(tf.transpose(self.ones,[0,3,1,2]))
【解决办法2】:
将 tensorflow 1.9.0 降级至 1.2 或1.4
【参考】:
1.官网tensorflow各版本库汇总:https://tensorflow.google.cn/versions
2.https://github.com/Kyubyong/transformer/issues/30