Softmax.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import os.path
  2. import itertools
  3. import Tools
  4. import random
  5. import numpy as np
  6. import scipy.special as sp
  7. NBTESTSAMPLES = 500
  8. def softmax(v):
  9. m = sp.softmax(v)
  10. return(np.argmax(m)+1)
  11. def writeTest(config,nb,vecDim):
  12. dims=[]
  13. inputsA=[]
  14. outputs=[]
  15. outputsSamples = []
  16. dims.append(NBTESTSAMPLES)
  17. dims.append(vecDim)
  18. for _ in range(0,NBTESTSAMPLES):
  19. va = np.abs(np.random.randn(vecDim))
  20. va = va / np.sum(va)
  21. r = sp.softmax(va)
  22. outputsSamples += list(r)
  23. outputs.append(np.argmax(r)+1)
  24. inputsA += list(va)
  25. inputsA=np.array(inputsA)
  26. outputs=np.array(outputs)
  27. outputsSamples=np.array(outputsSamples)
  28. config.writeInput(nb, inputsA,"InputA")
  29. config.writeInputS16(nb, dims,"Dims")
  30. config.writeReferenceS16(nb, outputs,"Ref")
  31. config.writeReference(nb, outputsSamples,"Samples")
  32. def writeTests(config):
  33. writeTest(config,1,21)
  34. def generatePatterns():
  35. PATTERNDIR = os.path.join("Patterns","NN","Softmax",)
  36. PARAMDIR = os.path.join("Parameters","NN","Softmax")
  37. configq7=Tools.Config(PATTERNDIR,PARAMDIR,"q7")
  38. writeTests(configq7)
  39. if __name__ == '__main__':
  40. generatePatterns()