activation.py 1.16 KB
import math
#평균 확룰이 0.5가 아니야
#평균 확률이 0.2야

#중앙을 기준으로 나눈다고 치면은 0.1을 기준으로 나누는거지

def softmax(inputA):
    result = []
    
    sigmaSum = 0
    normalized_arr = []
    for x in inputA:
        normalized_arr.append(float(x))
    normalized_arr = normalize(normalized_arr) 
        
    for i in range(0, len(normalized_arr)):
        
        powA = pow(math.e, normalized_arr[i]) 
        sigmaSum = sigmaSum + powA
        
    for i in range(0, len(normalized_arr)):
        powB = pow(math.e, normalized_arr[i])
        resultA = powB / sigmaSum
        
        result.append(resultA)
    
    #result = normalize(result)
    return result

def normalize(arrs):
    normalized_arr = []
    for x in arrs:
        normalized_arr.append(float(x))
    
    if len(normalized_arr) > 0:    
        maximum = max(normalized_arr)
        minimum = min(normalized_arr)
        denom = float(maximum) - float(minimum)
        if denom == 0:
            denom = 1
        for i in range(0,len(normalized_arr)):
            normalized_arr[i] = ((normalized_arr[i] - minimum)/ denom) * 2 - 1
    return normalized_arr