Это потому, что активация linear
возвращает ввод без каких-либо изменений:
def linear(x):
"""Linear (i.e. identity) activation function.
"""
return x
Поскольку вы передаете Серию Панд в качестве входных данных, будет возвращена та же Серия Панд, и поэтому вам не нужно использовать K.eval()
:
df["linear"] = activations.linear(df["activation"])
Что касается активации selu
, вам необходимо изменить форму ввода на (n_samples, n_output)
:
df["selu"] = K.eval(activations.selu(df["activation"].values.reshape(-1,1)))
А что касается активации hard_sigmoid
, ее ввод должен быть явно тензором, который вы можете создать, используя K.variable()
:
df["hard_sigmoid"] = K.eval(activations.hard_sigmoid(K.variable(df["activation"].values)))
Далее, exponential
активация работает так, как вы написали, и нет необходимости в модификациях.