Преобразовать текст в 32-мерный вектор с использованием веса Albert-V2Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Преобразовать текст в 32-мерный вектор с использованием веса Albert-V2

Сообщение Anonymous »

Проблема несоответствия данных текста к 32-мерным векторным данным:
Используйте Huggingface, чтобы загрузить веса Albert-V2 на локальный компьютер и прочитать текст для вывода. Почему вектор одного и того же текста отличается, когда batch_size устанавливается на разные значения при использовании GPU?
здесь код : < /p>

Код: Выделить всё

import tensorflow as tf
import numpy as np
import random
from transformers import AlbertTokenizer, TFAlbertModel, BertTokenizer, TFBertModel
from tqdm import tqdm

seed = 42
tf.random.set_seed(seed)
random.seed(seed)
np.random.seed(seed)

tokenizer = AlbertTokenizer.from_pretrained('albert')
albert_model = TFAlbertModel.from_pretrained("albert", output_hidden_states=True)
albert_model.trainable = False  # 禁用训练模式

embedding_dim = 32

dense_layer = tf.keras.layers.Dense(embedding_dim, activation='linear', use_bias=False)
dense_layer.build((None, 768))
dense_layer.kernel.assign(tf.random.normal((768, embedding_dim)))

def text_to_embedding(texts, max_length=60):
inputs = tokenizer(texts, return_tensors='tf', padding='max_length', truncation=True, max_length=max_length)

with tf.device('/GPU:0'):
outputs = albert_model(inputs['input_ids'], attention_mask=inputs['attention_mask'])
last_hidden_state = outputs.last_hidden_state
# hidden_states = outputs.hidden_states  # 获取所有层的输出
# print(hidden_states)

mean_output = tf.reduce_mean(last_hidden_state, axis=1)
reduced_output = dense_layer(mean_output)

return reduced_output.numpy()  # 返回 numpy 数组

texts = ['无经验描述', '无工作经历 ', '-', '什么都没有', '无工作经历-无经验描述']

max_length = 60
batch_size = 2  # 或者 10
batches = [texts[i:i + batch_size] for i in range(0, len(texts), batch_size)]

for batch in tqdm(batches):
embedding = text_to_embedding(batch, max_length=max_length)
print(embedding)

Почему pactor-size = 1 и 2 , результат отличается?

Подробнее здесь: https://stackoverflow.com/questions/794 ... v2-weights
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как применить веса HCUP NIS (кластеры, слои и веса) в Python для национальных оценок и анализа PSM?
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • IndexError: слишком много индексов для массива: массив 0-мерный, но 2 были проиндексированы
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Как создать 2-мерный объект Numpy Array с нулевым размером?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как создать 2-мерный объект Numpy Array с нулевым размером?
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как создать 2-мерный объект Numpy Array с нулевым размером?
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»