File size: 975 Bytes
9083130 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import json
import torch
from model import BraLM, Vocab
with open("vocab_wiki_4k.json") as f:
node_dict = json.load(f)
vocab = Vocab.from_node_dict(node_dict)
with open('word_frequency.json', 'r') as f:
freq_dict = json.load(f)
zero_freq_edges = {}
for s in freq_dict:
zero_freq_edges[s] = []
for t in freq_dict[s]:
if freq_dict[s][t] == 0:
zero_freq_edges[s].append(t)
model = BraLM(hidden_size=32, zero_freq_edges=zero_freq_edges, vocab=vocab)
model.prepare_network(vocab)
state_dict = torch.load("model_zh.bin", weights_only=True)
model.load_state_dict(state_dict)
model.to_device("cuda:6")
head = "《罗马》描述了"
max_token = 32 - len(head)
start = [vocab((head[i]+ '->' +head[i+1])) for i in range(len(head)-1)]
ret = model.decode(start, vocab, max_token)
decode_tuple_list = [vocab.decode(p) for p in ret]
decode_sentence = decode_tuple_list[0][0] + "".join([p[-1] for p in decode_tuple_list])
print(decode_sentence)
|