28 lines
1000 B
Python
28 lines
1000 B
Python
import numpy as np
|
|
from model import CompactPredictor
|
|
import torch
|
|
|
|
def main():
|
|
model = CompactPredictor(10).to('cpu', dtype=torch.float32)
|
|
model.load_state_dict(torch.load('./pred/checkpoints/play_predictor.pth'))
|
|
model.eval()
|
|
# inference
|
|
last = 999469
|
|
for i in range(1, 48):
|
|
hour = i / 2
|
|
sec = hour * 3600
|
|
time_d = np.log2(sec)
|
|
data = [time_d, 19.9295936113, # time_delta, current_views
|
|
6.1575520046,8.980,10.6183855023,12.0313328273,13.2537252486, # growth_feat
|
|
0.625,0.2857142857,24.7794093257 # time_feat
|
|
]
|
|
np_arr = np.array([data])
|
|
tensor = torch.from_numpy(np_arr).to('cpu', dtype=torch.float32)
|
|
output = model(tensor)
|
|
num = output.detach().numpy()[0][0]
|
|
views_pred = int(np.exp2(num)) + 999469
|
|
print(f"{int(15+hour)%24:02d}:{int((15+hour)*60)%60:02d}", views_pred, views_pred - last)
|
|
last = views_pred
|
|
|
|
if __name__ == '__main__':
|
|
main() |