Имеют два простых текстовых файла по 20 строк. Текущий скрипт ниже читает только строку 20 в обоих, запускает основной процесс context_input без ошибок и затем завершается. Необходимо применить один и тот же процесс ко всем строкам 1-20.
Тот же результат, если использовать счетчик с системой импорта sys. Требование - читать строки, а не создавать список. readlines () приведет к ошибкам. Любые фрагменты кода для установки правильного l oop для достижения sh приветствуются.
# coding=utf-8
from src.model_use import TextGeneration
from src.utils import DEFAULT_DECODING_STRATEGY, MEDIUM
from src.flexible_models.flexible_GPT2 import FlexibleGPT2
from src.torch_loader import GenerationInput
from transformers import GPT2LMHeadModel, GPT2Tokenizer
def main():
with open("data/test-P1-Multi.txt","r") as f:
for i in range(20):
P1 = f.readline()
with open("data/test-P3-Multi.txt","r") as f:
for i in range(20):
P3 = f.readline()
context_input = GenerationInput(P1=P1, P3=P3, size=MEDIUM)
print("\n", "-"*100, "\n", "PREDICTION WITH CONTEXT WITHOUT SPECIAL TOKENS")
model = GPT2LMHeadModel.from_pretrained('models/774M')
tokenizer = GPT2Tokenizer.from_pretrained('models/774M')
GPT2_model = FlexibleGPT2(model, tokenizer, DEFAULT_DECODING_STRATEGY)
text_generator_with_context = TextGeneration(GPT2_model, use_context=True)
predictions = text_generator_with_context(context_input, nb_samples=1)
for i, prediction in enumerate(predictions):
print('prediction n°', i, ': ', prediction)
del model, tokenizer, GPT2_model
if __name__ == "__main__":
main()