34 lines
990 B
Python
34 lines
990 B
Python
import sys
|
|
import numpy as np
|
|
import torch
|
|
import pickle
|
|
import os
|
|
import shutil
|
|
|
|
shutil.copyfile('../../src/MLIAP/mliappy_pytorch.py','./mliappy_pytorch.py')
|
|
|
|
import mliappy_pytorch
|
|
|
|
# Read coefficients
|
|
coeffs = np.genfromtxt("Ta06A.mliap.model",skip_header=6)
|
|
|
|
# Write coefficients to a pytorch linear model
|
|
bias = coeffs[0]
|
|
weights = coeffs[1:]
|
|
lin = torch.nn.Linear(weights.shape[0],1)
|
|
lin.to(torch.float64)
|
|
with torch.autograd.no_grad():
|
|
lin.weight.set_(torch.from_numpy(weights).unsqueeze(0))
|
|
lin.bias.set_(torch.as_tensor(bias,dtype=torch.float64).unsqueeze(0))
|
|
|
|
# Wrap the pytorch model for usage with mliappy energy model
|
|
model = mliappy_pytorch.IgnoreElems(lin)
|
|
n_descriptors = lin.weight.shape[1]
|
|
n_params = mliappy_pytorch.calc_n_params(model)
|
|
n_types = 1
|
|
linked_model = mliappy_pytorch.TorchWrapper64(model,n_descriptors=n_descriptors,n_elements=n_types)
|
|
|
|
# Save the result.
|
|
with open("Ta06A.mliap.pytorch.model.pkl",'wb') as pfile:
|
|
pickle.dump(linked_model,pfile)
|