当我写tf.keras.layers.LSTM ,我收到了警告
Note that this layer is not optimized for performance. Please use tf.keras.layers.CuDNNLSTM for better performance on GPU.
但是当我将图层更改为tf.keras.layers.CuDNNLSTM ,我收到错误
AttributeError: module ‘tensorflow.python.keras.api._v2.keras.layers’ has no attribute ‘CuDNNLSTM’
貌似这个问题是因为tensorflow版本升级,内部api进行了改动造成的,一般来说,在tensorflow2.0以上的版本中应该使用
tf.keras.layers.LSTM
但是,博主由于是要运行别人的代码,加载别人已经有的模型,所以不能轻易修改人家制定下的变量类型,所以如果由于某种原因你特别需要tf.keras.layers.CuDNNLSTM的原始实现,那么你可以使用tf.compat.v1.keras.layers.CuDNNLSTM
进行替代。
这显然是由于TF版本升级造成的,所以要使用tf.compat巴拉巴拉告诉tensorflow仍旧要认识老版本的名字。
参考:stackoom