Skip to content

Instantly share code, notes, and snippets.

@LeonardoCiaccio
Forked from cyphunk/softmax.js
Created October 13, 2017 10:37
Show Gist options
  • Save LeonardoCiaccio/3e25f31e71985744e3de1fe916e2a6a4 to your computer and use it in GitHub Desktop.
Save LeonardoCiaccio/3e25f31e71985744e3de1fe916e2a6a4 to your computer and use it in GitHub Desktop.
softmax function implementation in js
//let softmax = (arr) => (index) => Math.exp(arr[index]) / arr.map(y => Math.exp(y)).reduce((a, b) => a + b);
function softmax(arr) {
return arr.map(function(value,index) {
return Math.exp(value) / arr.map( function(y /*value*/){ return Math.exp(y) } ).reduce( function(a,b){ return a+b })
})
}
example1=[ 0.9780449271202087,
0.01590355671942234,
0.0019390975357964635,
0.0015482910675927997,
0.0012942816829308867,
0.0006004497990943491,
0.0004827099328394979,
0.0001868270628619939 ]
softmax1=softmax(example1)
example2= [
{ prob: 0.32289665937423706, cat: '25_32' },
{ prob: 0.15404804050922394, cat: '38_43' },
{ prob: 0.03673655539751053, cat: '4_6' },
{ prob: 0.01545996405184269, cat: '48_53' },
{ prob: 0.011709162034094334, cat: '15_20' },
{ prob: 0.008010754361748695, cat: '8_13' },
{ last: true, prob: 0.0054732030257582664, cat: '60+' } ].map(function(v){return v.prob})
softmax2=softmax(example2)
example3=[ { prob: 0.125, cat: '25_32' },
{ prob: 0.125, cat: '38_43' },
{ prob: 0.125, cat: '15_20' },
{ prob: 0.125, cat: '8_13' },
{ prob: 0.125, cat: '4_6' },
{ prob: 0.125, cat: '48_53' },
{ prob: 0.125, cat: '60+' },
{ prob: 0.125, cat: '0_2' } ].map(function(v){return v.prob})
softmax3=softmax(example3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment