2017-03-02 6 views
1

Le code suivant est écrit dans Octave Langage de programmationsigmoïde en python qui peut prendre scalaire, vecteur ou matrice

g =1./(1+e.^-(z) 

Il calcule une fonction sigmoïde et peut prendre scalaire, vecteur ou matrice. Par exemple si je mets au-dessus dans une sigmoïde de fonction (z), où z = 0, le résultat sera:

result=sigmoid(0) 

Le résultat sera scalaire (0,5) si le col d'un vecteur dire z = [0,2, 0,4, 0,1], il serait sortie un vecteur pour résultat que: -

résultat
result=sigmoid(z) 

est un vecteur:

0.54983 0.59869 0.52498 

si z est une matrice comme

z=[ 0.2 0.4; 0.5 0.7; 0.9 .004] 

result = sigmoid(z) 

le résultat est =

0.54983 0.59869 
    0.62246 0.66819 
    0.71095 0.50100 

Maintenant, comment puis-je mettre une méthode similaire en Python ?. J'ai essayé le code ci-dessous,

g=1./ (1 + math.exp(-z)) 

Mais cela ne fonctionne que pour scalaire. Pas pour le vecteur et Matrix. Qu'est-ce que je fais mal. désolé ma question avant n'était pas très clair. Je suis ré-édité.

+0

Peut-être que je n'étais pas clair que je voulais ajouter plus de choses en une seule phrase. – sunny

+0

J'ai réédité ma question. merci de l'avoir signalé. – sunny

Répondre

2

Le module numpy, inclus dans de nombreuses distributions Python et facile à ajouter aux autres, possède des capacités de tableau. Voici comment faire ce que vous voulez en Python avec numpy. Notez que la définition d'un tableau en numpy est un peu différente de celle d'Octave, mais l'expression sigmoïde est presque exactement la même.

from numpy import array, exp 

z = array([ 0.2, 0.4, 0.1]) 
print('z = \n', z) 
g = 1/(1 + exp(-z)) 
print('g =\n', g) 

print() 

z = array([[0.2, 0.4], [0.5, 0.7], [0.9, .004]]) 
print('z = \n', z) 
g = 1/(1 + exp(-z)) 
print('g =\n', g) 

Les résultats de ce code (en cours d'exécution en IPython) sont:

z = 
[ 0.2 0.4 0.1] 
g = 
[ 0.549834 0.59868766 0.52497919] 

z = 
[[ 0.2 0.4 ] 
[ 0.5 0.7 ] 
[ 0.9 0.004]] 
g = 
[[ 0.549834 0.59868766] 
[ 0.62245933 0.66818777] 
[ 0.7109495 0.501  ]] 
+0

Génial! Cela a vraiment marché. J'aurais dû savoir que numpy supporte toutes les fonctions mathématiques requises telles que log, e. – sunny