Построение новой функции активации, определенной с использованием существующей из Keras - PullRequest
1 голос
/ 22 мая 2019

Можно ли построить функцию активации, которую я определяю, используя уже существующую активацию от 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(), как предложено здесь , но также безуспешно.

Ответы [ 2 ]

1 голос
/ 22 мая 2019

Я также пытался поиграть с .eval(), как было предложено здесь, но также безуспешно.

Как вы его использовали?Это должно работать:

plt.plot(x, K.eval(swish(x)))
1 голос
/ 22 мая 2019

Вам необходим сеанс для оценки:

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

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

plt.plot(x, y)
...