Я новичок в pytorch и не знаю, как преобразовать матрицу встраивания в тип torch.Tensor
. У меня есть 240 строк входных текстовых данных, которые я преобразую для встраивания с использованием библиотеки Sentence Transformer
, как показано ниже
embedding_model = SentenceTransformer('bert-base-nli-mean-tokens')
features = embedding_model.encode(df.features.values)
Теперь этот features
является numpy.ndarray
формы (240, 768)
Я определил модель как
class NClassifier(nn.Module):
def __init__(self, input_dim, embedding_dim, hidden_dim, tagset_size):
super(NClassifier, self).__init__()
self.hidden_dim = hidden_dim
self.word_embeddings = nn.Embedding(input_dim, embedding_dim)
# The LSTM takes word embeddings as inputs, and outputs hidden states
# with dimensionality hidden_dim.
self.lstm = nn.LSTM(embedding_dim, hidden_dim)
# The linear layer that maps from hidden state space to code space (output clases)
self.hidden2code = nn.Linear(hidden_dim, tagset_size)
def forward(self, features):
embeds = self.word_embeddings(features)
lstm_out, _ = self.lstm(embeds.view(len(features), 1, -1))
code_space = self.hidden2code(lstm_out.view(len(features), -1))
code_scores = F.log_softmax(code_space, dim=1)
return code_scores
INPUT_DIM = 240
EMBEDDING_DIM = 768
HIDDEN_DIM = 256
OUTPUT_DIM = 34
model = NClassifier(INPUT_DIM, EMBEDDING_DIM, HIDDEN_DIM, OUTPUT_DIM)
Теперь, когда я делаю scores = model(features)
Я получаю ошибку, поскольку features
НЕ является тензором. Я вижу пример преобразования входных данных в тензор здесь , но мне это не понятно.
Может кто-нибудь помочь, пожалуйста?