首页 > 解决方案 > 绘制使用来自 Keras 的现有激活函数定义的新激活函数

问题描述

是否可以使用 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'.

我注意到了这个类似的问题,但我无法根据我的需要进行调整。我也尝试过玩这里.eval()建议的类似游戏,但也没有成功。

标签: pythonnumpytensorflowkerasactivation-function

解决方案


您需要一个会话来评估:

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

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

plt.plot(x, y)

推荐阅读