2016-04-26 6 views
0
v = np.random.normal(0, 0.01, (200, 785)) 
x is 60000 by 785 


for ele in x: 

    a = np.dot(v, ele.T) 

    h = tanh(a) 





def tanh(value): 
    value = np.clip(value, -20, 20) 
    return 2*sigmoid(2*value) -1 

def sigmoid(value): 
    return 1.0/(1+math.exp(-value)) 

Я получаю ошибку «только длина-1 Массивы могут быть преобразованы в скаляров Python », говоря, что я не могу применить сигмовидной как это элементарно.Python: Применить функции ехр, к каждому из Ele Numpy массива

В основном проблема заключается в следующем: a 200 на 1, и я хочу сделать tanh (a). Кроме того, я не совсем понимаю, почему мне разрешено применять более простую функцию типа +1, а не сигмовидную, что связано с exp.

ответ

2

Вам необходимо использовать np.exp вместо math.exp. Последний не поддерживает массивы NumPy.

+0

Спасибо! Это работает. – Jobs

+0

Добро пожаловать. Не забудьте нажать галочку слева, чтобы «принять» этот ответ, если он решил вашу проблему. –

Смежные вопросы