2014-10-05 4 views
0

문제 : 거대한 부동 소수점 값은 많은 시간을 복용 필리핀 선박 회사 연합 (PLSA)와 같은 기계 학습 알고리즘을 사용하는 동안제한 부동 소수점 배열

우리의 문제입니다. 이제 float point 정밀도를 소수점 이하 2 자리까지 줄이고 수학 연산을 수행하는 방법은 무엇입니까?

우리가 무엇을 가지고 :

당신은 반 정밀도를 사용할 수

ndarray: [[[ 0.09997559 0.   0.89990234] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ]] 

[[ 0.   0.   0.  ] 
    [ 0.30004883 0.30004883 0.30004883] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ]]] 


**What we needed:** 

[[[ 0.1   0.   0.9] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ]] 

[[ 0.   0.   0.  ] 
    [ 0.3   0.3   0.3  ] 
    [ 0.   0.   0.  ] 
    [ 0.   0.   0.  ]]] 
+3

부동 소수점이 작동하는 방식이 아닙니다. –

+0

안녕 Oliver ...이 시나리오에 대한 대안이 있습니다.? – Mandzzz

답변

1

다음 NumPy와 명령 np.zeros으로 초기화 ([2,4,3], np.float는)에 수레 메모리 사용량을 줄입니다 (부호 비트, 5 비트 지수, 10 비트 가수). this을 참조하십시오.

>>> b=np.zeros([2,4,3],np.float) 
>>> b.nbytes 
192 
>>> c=np.zeros([2,4,3],np.float16) 
>>> c.nbytes 
48