Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
https://github.com/materialsvirtuallab/megnet/blob/master/mvl_models/mp-2019.4.1/formation_energy.hdf5
Args:
url: (str) url link of the model
Returns:
GraphModel
"""
import urllib.request
fname = url.split("/")[-1]
urllib.request.urlretrieve(url, fname)
urllib.request.urlretrieve(url + ".json", fname + ".json")
return cls.from_file(fname)
class MEGNetModel(GraphModel):
"""
Construct a graph network model with or without explicit atom features
if n_feature is specified then a general graph model is assumed,
otherwise a crystal graph model with z number as atom feature is assumed.
"""
def __init__(self,
nfeat_edge: int = None,
nfeat_global: int = None,
nfeat_node: int = None,
nblocks: int = 3,
lr: float = 1e-3,
n1: int = 64,
n2: int = 32,
n3: int = 16,
nvocal: int = 95,
https://github.com/materialsvirtuallab/megnet/blob/master/mvl_models/mp-2019.4.1/formation_energy.hdf5
Args:
url: (str) url link of the model
Returns:
GraphModel
"""
import urllib.request
fname = url.split("/")[-1]
urllib.request.urlretrieve(url, fname)
urllib.request.urlretrieve(url + ".json", fname + ".json")
return cls.from_file(fname)
class MEGNetModel(GraphModel):
"""
Construct a graph network model with or without explicit atom features
if n_feature is specified then a general graph model is assumed,
otherwise a crystal graph model with z number as atom feature is assumed.
"""
def __init__(self,
nfeat_edge: int = None,
nfeat_global: int = None,
nfeat_node: int = None,
nblocks: int = 3,
lr: float = 1e-3,
n1: int = 64,
n2: int = 32,
n3: int = 16,
nvocal: int = 95,
Class method to load model from
filename for keras model
filename.json for additional converters
Args:
filename: (str) model file name
Returns
GraphModel
"""
configs = loadfn(filename + '.json')
from keras.models import load_model
from megnet.layers import _CUSTOM_OBJECTS
model = load_model(filename, custom_objects=_CUSTOM_OBJECTS)
configs.update({'model': model})
return GraphModel(**configs)
def __init__(self, model_name: str = DEFAULT_MODEL, use_cache: bool = True):
if isinstance(model_name, str):
model = MEGNetModel.from_file(model_name)
elif isinstance(model_name, GraphModel):
model = model_name
else:
raise ValueError('model_name only support str or GraphModel object')
layers = model.layers
important_prefix = ['meg', 'set', 'concatenate']
all_names = [i.name for i in layers if any([i.name.startswith(j) for j in important_prefix])]
valid_outputs = [i.output for i in layers if any([i.name.startswith(j) for j in important_prefix])]
outputs = []
valid_names = []
for i, j in zip(all_names, valid_outputs):
if isinstance(j, list):
for k, l in enumerate(j):
valid_names.append(i + '_%d' % k)
outputs.append(l)
Class method to load model from
filename for keras model
filename.json for additional converters
Args:
filename: (str) model file name
Returns
GraphModel
"""
configs = loadfn(filename + '.json')
from keras.models import load_model
from megnet.layers import _CUSTOM_OBJECTS
model = load_model(filename, custom_objects=_CUSTOM_OBJECTS)
configs.update({'model': model})
return GraphModel(**configs)