작성
·
216
0
model.summary 명령어로 딥러닝 모형을 확인하는 데까지는 문제가 없었는데,
그 이후에 모형을 컴파일해서 history 변수에 할당하는 부분에서 "Failed to convert a NumPy array to a Tensor (Unsupported object type float)." 에러가 발생합니다.
구글링한 결과로는 float 형식이 아닌 타입의 데이터가 섞여 있어서 그렇다고 나오는데, 지금 학습을 돌리고 있는 x_train 데이터를 확인해 보니 아래처럼 0, 1이 아닌 True, False 값이 들어가 있었습니다.
더미화 이후 강사님과는 다르게 True, False 값으로 데이터가 생성되었는데 혹시 이것 때문에 에러가 나는 걸까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
waterlee6님, 문제를 겪고 계신 부분에 대해 도움을 드리겠습니다.
에러 메시지 “Failed to convert a NumPy array to a Tensor (Unsupported object type float).“는 NumPy 배열을 Tensor로 변환하는 과정에서 float 타입의 객체를 지원하지 않는다는 내용을 나타냅니다. 이는 모델의 fit
함수에 입력하는 데이터 타입이 TensorFlow가 요구하는 형식과 일치하지 않음을 의미합니다.
waterlee6님께서 첨부하신 세 번째 이미지를 보면, x_train
데이터 중 ‘weather_code’와 ‘hour’ 열이 True, False의 불리언 타입으로 되어 있는 것을 확인할 수 있습니다. 이러한 불리언 타입이 모델의 입력으로 적절하지 않아 에러가 발생할 수 있습니다.
TensorFlow 모델에 데이터를 넘겨줄 때는 일반적으로 숫자 데이터 형태가 필요합니다. 따라서 True/False 대신에 1/0으로 대체하거나 해당 불리언 값을 숫자 타입으로 변환할 필요가 있습니다. astype
함수를 사용하여 각 불리언 값을 정수형으로 변환해보세요.
x_train = x_train.astype(float)
위 코드는 x_train
내의 모든 불리언 값을 float 타입으로 변경하는 예제입니다. 모든 요소가 float 타입인 NumPy 배열로 변환된 후에 모델의 fit
함수를 다시 실행해보시기 바랍니다.
추가적으로, 모든 입력 특성이 동일한 타입을 가져야 하며, 모델은 일반적으로 float32 또는 float64 타입의 텐서를 기대합니다.
데이터 타입을 전환한 후에도 문제가 해결되지 않았다면, 데이터의 다른 부분에 문제가 없는지 전처리 과정을 잘 살펴보시고, 필요하다면 인프런의 ‘문의하기’ 기능을 통해 더 상세한 도움을 요청하실 수 있습니다.
링크를 참조해주세요.
인프런 FAQ
도움이 필요하시면 언제든 문의해주세요. 문제 해결을 위해 최선을 다하겠습니다. 감사합니다!