schrojunzhang / KarmaDock

https://www.nature.com/articles/s43588-023-00511-5
Apache License 2.0
92 stars 12 forks source link

如何产生一个pkl文件? #19

Open Dr-F-Arthur opened 7 months ago

Dr-F-Arthur commented 7 months ago

目前已知给出了一个预训练好的模型参数,在模型文件夹trained_models/karmadock_screening.pkl下的文件,那么如何产生这个文件?按照自己的理解对参数进行微调和修改? 我通过读utils/fns.py文件,了解到有在124行的save_model方法,并在下面128行的step方法里面得到运用。在包括utils/virtual_screening.py和utils/ligand_docking.py文件内,也只看到了load相关方法的使用,想了解一下该如何复现产生trained_models/karmadock_screening.pkl模型参数文件。 之前我尝试写过这样的代码,感觉效果不理想,而且如分数参数是我随便写的,并不清楚如何设置比较合理:

import argparse
import os
import sys

from tqdm import tqdm
project_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
sys.path.append(project_dir)

from utils.fns import Early_stopper, set_random_seed
from architecture.KarmaDock_architecture import KarmaDock
import torch.nn as nn
import torch.optim

# device
device_id = 0
if torch.cuda.is_available():
    my_device = f'cuda:{device_id}'
else:
    my_device = 'cpu'

model = KarmaDock()
model = nn.DataParallel(model, device_ids=[device_id], output_device=device_id)
model.to(my_device)

# stoper
model_file = f'{project_dir}/trained_models/try_model.pkl'
stopper = Early_stopper(model_file=model_file,
                        mode='lower', patience=10)
stopper.step(50,model)