728x90
반응형
nn.Embedding처럼 임베딩하는 과정에서 input data의 타입때문에 발생한 오류인 것 같다.
나같은 경우엔 numpy.ndarray 타입의 입력 데이터를 torch.from_numpy()함수로 tensor타입으로 변경한 후,
embedding레이어의 Input에 넣어주는 방식을 사용했었는데 cuda()함수나 .long(), float()와 같은 함수로 사용했을 때도 해결되지 않았었다.
그러다 찾은 방법이 아래처럼 그냥 torch.LongTensor로 ndarray와 데이터가 동일한 신규 텐서 변수를 생성해주고, 그 텐서를 그대로 사용하는 것이 오류 없이 잘 됐었다.
test_data = speaker.tok.encode_sentence(ob['other_instr_1'])
tensor_test_data = torch.LongTensor(test_data[1:])
test_data_emb = glove_embeds(tensor_test_data)
728x90
반응형