![](/img/trans.png)
[英]AttributeError: type object 'object' has no attribute 'dtype'
[英]AttributeError: 'float' object has no attribute 'dtype'
當我嘗試在 keras (2.2.5) 中使用自定義激活 function 時,我創建了一個新的激活 function gelu。 將其添加到 activations.py 中:
from . import backend as K
import numpy as np
def gelu(x):
return 0.5 * x * (1 + K.tanh(K.sqrt(2 / np.pi) * (x + 0.044715 * K.pow(x, 3))))
在我的 main.py 中使用它:
cnn1 = Conv1D(filters=256, kernel_size=2, strides=1, padding="same")(gru_output)
cnn1 = Activation('gelu')(cnn1)
但是我在工作時遇到錯誤:
File "C:/Users/user/Desktop/my/my_main.py", line 253, in <module>
cnn1 = Activation('gelu')(cnn1)
File "C:\Users\user\Desktop/my\venv\lib\site-packages\keras\engine\base_layer.py", line 451, in __call__
output = self.call(inputs, **kwargs)
File "C:\Users\user\Desktop\my\venv\lib\site-packages\keras\layers\core.py", line 300, in call
return self.activation(inputs)
File "C:\Users\user\Desktop\my\venv\lib\site-packages\keras\activations.py", line 16, in gelu
return 0.5 * x * (1 + K.tanh(K.sqrt(2 / np.pi) * (x + 0.044715 * K.pow(x, 3))))
File "C:\Users\user\Desktop\my\venv\lib\site-packages\keras\backend\tensorflow_backend.py", line 1675, in sqrt
zero = _to_tensor(0., x.dtype.base_dtype)
AttributeError: 'float' object has no attribute 'dtype'
所以我該怎么做?
將K.sqrt()
替換為tf.math.sqrt()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.