"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > LSTM 모델에서 \"NumPy 배열을 Tensor로 변환하지 못했습니다\" 오류를 수정하는 방법은 무엇입니까?

LSTM 모델에서 \"NumPy 배열을 Tensor로 변환하지 못했습니다\" 오류를 수정하는 방법은 무엇입니까?

2024-11-01에 게시됨
검색:208

How to Fix \

NumPy 배열을 텐서로 변환하지 못했습니다.

"NumPy 배열을 텐서로 변환하지 못했습니다(지원되지 않는 객체 유형 부동 소수점) )", 데이터 준비 및 모델 정의와 관련된 잠재적 원인을 식별하는 것이 중요합니다.

데이터 준비

TensorFlow는 입력 데이터가 특정 형식일 것으로 예상합니다. 이 경우 LSTM 모델의 경우 데이터의 차원은 (num_samples, timesteps, 채널)이어야 합니다. 훈련 데이터 x_train의 형식이 올바른지 확인하세요. x_array = np.asarray(x_list)를 사용하여 데이터를 NumPy 배열로 변환하고 모양을 확인하면 크기를 확인하는 데 도움이 될 수 있습니다.

또한 데이터가 제대로 전처리되었는지 확인하세요. 범주형 변수, 누락된 값(NaN) 또는 문자열을 적절하게 처리합니다.

모델 정의

LSTM 모델이 올바르게 정의되었는지 확인하세요. 첫 번째 LSTM 레이어의 입력 모양은 입력 데이터의 모양과 일치해야 하며, 이는 다음 코드를 사용하여 확인할 수 있습니다:

[print(i.shape, i.dtype) for i in model.inputs]

마찬가지로, 모델의 각 레이어의 출력 모양과 데이터 유형이 예상과 일치하는지 확인하세요.

[print(o.shape, o.dtype) for o in model.outputs]

디버깅 팁

문제를 추가로 디버깅하려면 다음을 시도하십시오.

  • print(l.name) 함수를 사용하십시오. , l.input_shape, l.dtype)은 model.layers의 l에 대해 각 레이어의 이름, 입력 모양 및 데이터 유형을 표시합니다. 이는 차원이나 데이터 유형의 불일치를 식별하는 데 도움이 될 수 있습니다.
  • 입력 데이터를 올바른 모양으로 확장하세요. 귀하의 경우 원본 x_train에 차원(num_samples, timesteps)이 있는 경우 x_train = np.expand_dims(x_train, -1)을 사용하여 채널 차원을 추가하세요. 마찬가지로 대상 데이터인 y_train을 재구성해야 하는지 확인하세요.
  • 데이터를 지원되는 데이터 유형으로 캐스팅하세요. TensorFlow와 호환되려면 데이터 유형이 float32 또는 float64인지 확인하세요. 변환에는 x = np.asarray(x).astype('float32')를 사용하세요.

이 단계를 따르면 오류를 해결하고 모델을 성공적으로 훈련할 수 있습니다.

릴리스 선언문 이 글은 1729158619에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3