Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[에러기록] TypeError: Input 'y' of 'Mul' Op has type float64 that does not match type float32 of argument 'x'. 본문

프로그래밍 Programming/파이썬 Python

[에러기록] TypeError: Input 'y' of 'Mul' Op has type float64 that does not match type float32 of argument 'x'.

보통의공대생 2022. 6. 1. 20:48

이 오류는 tensorflow에서 tensor 연산을 할 때 나올 수 있는 오류이다.

 

tensorflow는 tensor를 정의할 때 float라고 해도 float32로 설정한다. 즉, 32비트 공간만 쓰겠다는 것이다.

그런데 numpy의 경우에는 float를 float64로 설정한다.

따라서 numpy로 만든 array를 tensor로 만든 다음에 내가 새로 정의한 tensor와 계산을 하려니 오류가 나는 것이었다.

 

해결방법

 

numpy array를 만들 때

array.astype(float32) # array는 배열 이름

이렇게 array의 타입을 바꿔주거나

 

tensor를 정의할 때 type을 float64로 하든, 데이터형을 맞춰주면 된다.

float64가 용량을 더 많이 차지하는 것만 고려하면 될 듯하다.

 

 

참고자료

 

https://stackoverflow.com/questions/36210887/how-to-fix-matmul-op-has-type-float64-that-does-not-match-type-float32-typeerror

 

How to fix MatMul Op has type float64 that does not match type float32 TypeError?

I am trying to save Nueral Network weights into a file and then restoring those weights by initializing the network instead of random initialization. My code works fine with random initialization. ...

stackoverflow.com

 

Comments