Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
torchani
Commits
bc5f4312
Unverified
Commit
bc5f4312
authored
Mar 24, 2019
by
Gao, Xiang
Committed by
GitHub
Mar 24, 2019
Browse files
Config flake8 and fix may linter errors (#198)
parent
f149f6e1
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
41 additions
and
34 deletions
+41
-34
docs/conf.py
docs/conf.py
+3
-3
examples/cache_aev.py
examples/cache_aev.py
+5
-3
examples/energy_force.py
examples/energy_force.py
+5
-5
examples/load_from_neurochem.py
examples/load_from_neurochem.py
+5
-5
examples/nnp_training.py
examples/nnp_training.py
+3
-1
setup.cfg
setup.cfg
+10
-1
tests/test_aev.py
tests/test_aev.py
+1
-1
tests/test_data.py
tests/test_data.py
+3
-3
torchani/aev.py
torchani/aev.py
+3
-9
torchani/data/__init__.py
torchani/data/__init__.py
+1
-1
torchani/data/_pyanitools.py
torchani/data/_pyanitools.py
+1
-1
torchani/nn.py
torchani/nn.py
+1
-1
No files found.
docs/conf.py
View file @
bc5f4312
...
...
@@ -28,9 +28,9 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
htmlhelp_basename
=
'TorchANIdoc'
sphinx_gallery_conf
=
{
'examples_dirs'
:
'../examples'
,
'gallery_dirs'
:
'examples'
,
'filename_pattern'
:
r
'.*\.py'
'examples_dirs'
:
'../examples'
,
'gallery_dirs'
:
'examples'
,
'filename_pattern'
:
r
'.*\.py'
}
intersphinx_mapping
=
{
...
...
examples/cache_aev.py
View file @
bc5f4312
...
...
@@ -52,8 +52,8 @@ log = 'runs'
###############################################################################
# Here, there is no need to manually construct aev computer and energy shifter,
# but we do need to generate a disk cache for datasets
const_file
=
os
.
path
.
join
(
path
,
'../torchani/resources/ani-1x_8x/rHCNO-5.2R_16-3.5A_a4-8.params'
)
# noqa: E501
sae_file
=
os
.
path
.
join
(
path
,
'../torchani/resources/ani-1x_8x/sae_linfit.dat'
)
# noqa: E501
const_file
=
os
.
path
.
join
(
path
,
'../torchani/resources/ani-1x_8x/rHCNO-5.2R_16-3.5A_a4-8.params'
)
sae_file
=
os
.
path
.
join
(
path
,
'../torchani/resources/ani-1x_8x/sae_linfit.dat'
)
training_cache
=
'./training_cache'
validation_cache
=
'./validation_cache'
...
...
@@ -113,7 +113,9 @@ container = torchani.ignite.Container({'energies': model})
optimizer
=
torch
.
optim
.
Adam
(
model
.
parameters
())
trainer
=
ignite
.
engine
.
create_supervised_trainer
(
container
,
optimizer
,
torchani
.
ignite
.
MSELoss
(
'energies'
))
evaluator
=
ignite
.
engine
.
create_supervised_evaluator
(
container
,
metrics
=
{
evaluator
=
ignite
.
engine
.
create_supervised_evaluator
(
container
,
metrics
=
{
'RMSE'
:
torchani
.
ignite
.
RMSEMetric
(
'energies'
)
})
...
...
examples/energy_force.py
View file @
bc5f4312
...
...
@@ -33,11 +33,11 @@ model = torchani.models.ANI1ccx()
# preceding ``1`` in the shape is here to support batch processing like in
# training. If you have ``N`` different structures to compute, then make it
# ``N``.
coordinates
=
torch
.
tensor
([[[
0.03192167
,
0.00638559
,
0.01301679
],
[
-
0.83140486
,
0.39370209
,
-
0.26395324
],
[
-
0.66518241
,
-
0.84461308
,
0.20759389
],
[
0.45554739
,
0.54289633
,
0.81170881
],
[
0.66091919
,
-
0.16799635
,
-
0.91037834
]]],
coordinates
=
torch
.
tensor
([[[
0.03192167
,
0.00638559
,
0.01301679
],
[
-
0.83140486
,
0.39370209
,
-
0.26395324
],
[
-
0.66518241
,
-
0.84461308
,
0.20759389
],
[
0.45554739
,
0.54289633
,
0.81170881
],
[
0.66091919
,
-
0.16799635
,
-
0.91037834
]]],
requires_grad
=
True
,
device
=
device
)
species
=
model
.
species_to_tensor
(
'CHHHH'
).
to
(
device
).
unsqueeze
(
0
)
...
...
examples/load_from_neurochem.py
View file @
bc5f4312
...
...
@@ -64,11 +64,11 @@ print(calculator1)
###############################################################################
# Now let's define a methane molecule
coordinates
=
torch
.
tensor
([[[
0.03192167
,
0.00638559
,
0.01301679
],
[
-
0.83140486
,
0.39370209
,
-
0.26395324
],
[
-
0.66518241
,
-
0.84461308
,
0.20759389
],
[
0.45554739
,
0.54289633
,
0.81170881
],
[
0.66091919
,
-
0.16799635
,
-
0.91037834
]]],
coordinates
=
torch
.
tensor
([[[
0.03192167
,
0.00638559
,
0.01301679
],
[
-
0.83140486
,
0.39370209
,
-
0.26395324
],
[
-
0.66518241
,
-
0.84461308
,
0.20759389
],
[
0.45554739
,
0.54289633
,
0.81170881
],
[
0.66091919
,
-
0.16799635
,
-
0.91037834
]]],
requires_grad
=
True
)
species
=
consts
.
species_to_tensor
(
'CHHHH'
).
unsqueeze
(
0
)
methane
=
ase
.
Atoms
(
'CHHHH'
,
positions
=
coordinates
.
squeeze
().
detach
().
numpy
())
...
...
examples/nnp_training.py
View file @
bc5f4312
...
...
@@ -148,7 +148,9 @@ container = torchani.ignite.Container({'energies': model})
optimizer
=
torch
.
optim
.
Adam
(
model
.
parameters
())
trainer
=
ignite
.
engine
.
create_supervised_trainer
(
container
,
optimizer
,
torchani
.
ignite
.
MSELoss
(
'energies'
))
evaluator
=
ignite
.
engine
.
create_supervised_evaluator
(
container
,
metrics
=
{
evaluator
=
ignite
.
engine
.
create_supervised_evaluator
(
container
,
metrics
=
{
'RMSE'
:
torchani
.
ignite
.
RMSEMetric
(
'energies'
)
})
...
...
setup.cfg
View file @
bc5f4312
...
...
@@ -2,4 +2,13 @@
verbosity=3
detailed-errors=1
with-coverage=1
cover-package=torchani
\ No newline at end of file
cover-package=torchani
[flake8]
ignore = E501
exclude =
.git,
__pycache__,
build,
.eggs,
docs/examples
tests/test_aev.py
View file @
bc5f4312
...
...
@@ -74,7 +74,7 @@ class TestAEV(unittest.TestCase):
for
expected_radial
,
expected_angular
in
radial_angular
:
conformations
=
expected_radial
.
shape
[
0
]
atoms
=
expected_radial
.
shape
[
1
]
aev_
=
aev
[
start
:
start
+
conformations
,
0
:
atoms
]
aev_
=
aev
[
start
:
(
start
+
conformations
)
,
0
:
atoms
]
start
+=
conformations
self
.
_assertAEVEqual
(
expected_radial
,
expected_angular
,
aev_
)
...
...
tests/test_data.py
View file @
bc5f4312
...
...
@@ -21,7 +21,7 @@ class TestData(unittest.TestCase):
batch_size
)
def
_assertTensorEqual
(
self
,
t1
,
t2
):
self
.
assertEqual
((
t1
-
t2
).
abs
().
max
().
item
(),
0
)
self
.
assertEqual
((
t1
-
t2
).
abs
().
max
().
item
(),
0
)
def
testSplitBatch
(
self
):
species1
=
torch
.
randint
(
4
,
(
5
,
4
),
dtype
=
torch
.
long
)
...
...
@@ -45,8 +45,8 @@ class TestData(unittest.TestCase):
self
.
assertNotEqual
(
last
[
-
1
],
n
[
0
])
conformations
=
s
.
shape
[
0
]
self
.
assertGreater
(
conformations
,
0
)
s_
=
species
[
start
:
start
+
conformations
,
...]
c_
=
coordinates
[
start
:
start
+
conformations
,
...]
s_
=
species
[
start
:
(
start
+
conformations
)
,
...]
c_
=
coordinates
[
start
:
(
start
+
conformations
)
,
...]
s_
,
c_
=
torchani
.
utils
.
strip_redundant_padding
(
s_
,
c_
)
self
.
_assertTensorEqual
(
s
,
s_
)
self
.
_assertTensorEqual
(
c
,
c_
)
...
...
torchani/aev.py
View file @
bc5f4312
...
...
@@ -77,8 +77,7 @@ def _angular_subaev_terms(Rca, ShfZ, EtaA, Zeta, ShfA, vectors1, vectors2):
fcj1
=
_cutoff_cosine
(
distances1
,
Rca
)
fcj2
=
_cutoff_cosine
(
distances2
,
Rca
)
factor1
=
((
1
+
torch
.
cos
(
angles
-
ShfZ
))
/
2
)
**
Zeta
factor2
=
torch
.
exp
(
-
EtaA
*
((
distances1
+
distances2
)
/
2
-
ShfA
)
**
2
)
factor2
=
torch
.
exp
(
-
EtaA
*
((
distances1
+
distances2
)
/
2
-
ShfA
)
**
2
)
ret
=
2
*
factor1
*
factor2
*
fcj1
*
fcj2
# At this point, ret now have shape
# (conformations, atoms, N, ?, ?, ?, ?) where ? depend on constants.
...
...
@@ -157,9 +156,7 @@ def default_neighborlist(species, coordinates, cutoff):
def
_compute_mask_r
(
species_r
,
num_species
):
# type: (Tensor, int) -> Tensor
"""Get mask of radial terms for each supported species from indices"""
mask_r
=
(
species_r
.
unsqueeze
(
-
1
)
==
torch
.
arange
(
num_species
,
dtype
=
torch
.
long
,
device
=
species_r
.
device
))
mask_r
=
(
species_r
.
unsqueeze
(
-
1
)
==
torch
.
arange
(
num_species
,
dtype
=
torch
.
long
,
device
=
species_r
.
device
))
return
mask_r
...
...
@@ -199,10 +196,7 @@ def _assemble(radial_terms, angular_terms, present_species,
atoms
=
radial_terms
.
shape
[
1
]
# assemble radial subaev
present_radial_aevs
=
(
radial_terms
.
unsqueeze
(
-
2
)
*
mask_r
.
unsqueeze
(
-
1
).
to
(
radial_terms
.
dtype
)
).
sum
(
-
3
)
present_radial_aevs
=
(
radial_terms
.
unsqueeze
(
-
2
)
*
mask_r
.
unsqueeze
(
-
1
).
to
(
radial_terms
.
dtype
)).
sum
(
-
3
)
# present_radial_aevs has shape
# (conformations, atoms, present species, radial_length)
radial_aevs
=
present_radial_aevs
.
flatten
(
start_dim
=
2
)
...
...
torchani/data/__init__.py
View file @
bc5f4312
...
...
@@ -53,7 +53,7 @@ def split_batch(natoms, species, coordinates):
improved
=
False
cycle_split
=
split
cycle_cost
=
cost
for
i
in
range
(
len
(
counts
)
-
1
):
for
i
in
range
(
len
(
counts
)
-
1
):
if
i
not
in
split
:
s
=
sorted
(
split
+
[
i
])
c
=
split_cost
(
counts
,
s
)
...
...
torchani/data/_pyanitools.py
View file @
bc5f4312
...
...
@@ -42,7 +42,7 @@ class anidataloader:
def
__init__
(
self
,
store_file
):
if
not
os
.
path
.
exists
(
store_file
):
exit
(
'Error: file not found - '
+
store_file
)
exit
(
'Error: file not found - '
+
store_file
)
self
.
store
=
h5py
.
File
(
store_file
,
'r'
)
''' Group recursive iterator (iterate through all groups
...
...
torchani/nn.py
View file @
bc5f4312
...
...
@@ -61,4 +61,4 @@ class Ensemble(torch.nn.ModuleList):
class
Gaussian
(
torch
.
nn
.
Module
):
"""Gaussian activation"""
def
forward
(
self
,
x
):
return
torch
.
exp
(
-
x
*
x
)
return
torch
.
exp
(
-
x
*
x
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment