绘制使用Keras中现有功能定义的新激活功能

时间:2019-05-22 10:23:09

标签: python numpy tensorflow keras activation-function

是否可以使用Keras的现有激活来绘制我定义的激活函数?我试着这样简单地做:

import keras
from keras import backend as K
import numpy as np
import matplotlib.pyplot as plt

# Define swish activation:
def swish(x):
    return K.sigmoid(x) * x

x = np.linspace(-10, 10, 100)

plt.plot(x, swish(x))
plt.show()

但是上面的代码会产生错误:AttributeError: 'Tensor' object has no attribute 'ndim'

我注意到了这个similar question,但无法根据需要进行调整。我还尝试过像建议的here一起玩.eval(),但也没有成功。

2 个答案:

答案 0 :(得分:1)

您需要进行评估:

x = np.linspace(-10, 10, 100)

with tf.Session().as_default():
    y = swish(x).eval()

plt.plot(x, y)

答案 1 :(得分:1)

  

我也尝试过像这里建议的.eval()玩,但是也没有成功。

您是如何使用它的?这应该起作用:

plt.plot(x, K.eval(swish(x)))