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
d07bd02c
"server/vscode:/vscode.git/clone" did not exist on "a2cf1bdb2fc0570dfca8b9ed2c8322f2040c3c07"
Unverified
Commit
d07bd02c
authored
Jul 31, 2018
by
Gao, Xiang
Committed by
GitHub
Jul 31, 2018
Browse files
add tqdm and tensorboard support on example (#35)
parent
f6b193bd
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
59 additions
and
13 deletions
+59
-13
.gitignore
.gitignore
+2
-0
Dockerfile
Dockerfile
+2
-1
examples/nnp_training.py
examples/nnp_training.py
+38
-12
examples/training-benchmark.py
examples/training-benchmark.py
+17
-0
No files found.
.gitignore
View file @
d07bd02c
...
@@ -14,3 +14,5 @@ a.out
...
@@ -14,3 +14,5 @@ a.out
.ipynb_checkpoints
.ipynb_checkpoints
benchmark_xyz
benchmark_xyz
*.pyc
*.pyc
*checkpoint*
/runs
\ No newline at end of file
Dockerfile
View file @
d07bd02c
FROM
zasdfgbnm/pytorch-master
FROM
zasdfgbnm/pytorch-master
RUN
pacman
-Sy
--noconfirm
python-sphinx python2-sphinx flake8
RUN
pacman
-Sy
--noconfirm
python-sphinx python2-sphinx python-tqdm python2-tqdm flake8
RUN
pip
install
tensorboardX
&&
pip2
install
tensorboardX
COPY
. /torchani
COPY
. /torchani
RUN
cd
torchani
&&
pip
install
.
RUN
cd
torchani
&&
pip
install
.
RUN
cd
torchani
&&
pip2
install
.
RUN
cd
torchani
&&
pip2
install
.
examples/nnp_training.py
View file @
d07bd02c
...
@@ -3,12 +3,20 @@ import torch
...
@@ -3,12 +3,20 @@ import torch
import
ignite
import
ignite
import
torchani
import
torchani
import
model
import
model
import
tqdm
import
timeit
import
tensorboardX
import
math
chunk_size
=
256
chunk_size
=
256
batch_chunks
=
4
batch_chunks
=
4
dataset_path
=
sys
.
argv
[
1
]
dataset_path
=
sys
.
argv
[
1
]
dataset_checkpoint
=
'dataset-checkpoint.dat'
dataset_checkpoint
=
'dataset-checkpoint.dat'
model_checkpoint
=
'checkpoint.pt'
model_checkpoint
=
'checkpoint.pt'
max_epochs
=
10
writer
=
tensorboardX
.
SummaryWriter
()
start
=
timeit
.
default_timer
()
shift_energy
=
torchani
.
EnergyShifter
()
shift_energy
=
torchani
.
EnergyShifter
()
training
,
validation
,
testing
=
torchani
.
data
.
load_or_create
(
training
,
validation
,
testing
=
torchani
.
data
.
load_or_create
(
...
@@ -40,26 +48,44 @@ evaluator = ignite.engine.create_supervised_evaluator(container, metrics={
...
@@ -40,26 +48,44 @@ evaluator = ignite.engine.create_supervised_evaluator(container, metrics={
})
})
def
hartree2kcal
(
x
):
return
627.509
*
x
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_STARTED
)
def
init_tqdm
(
trainer
):
trainer
.
state
.
tqdm
=
tqdm
.
tqdm
(
total
=
len
(
training
),
desc
=
'epoch'
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
ITERATION_COMPLETED
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
ITERATION_COMPLETED
)
def
log_training_loss
(
trainer
):
def
update_tqdm
(
trainer
):
print
(
"Epoch[{}] Loss: {:.2f}"
.
format
(
trainer
.
state
.
epoch
,
trainer
.
state
.
tqdm
.
update
(
1
)
trainer
.
state
.
output
))
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_COMPLETED
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_COMPLETED
)
def
log_training_results
(
trainer
):
def
finalize_tqdm
(
trainer
):
evaluator
.
run
(
training
)
trainer
.
state
.
tqdm
.
close
()
metrics
=
evaluator
.
state
.
metrics
print
(
"Training Results - Epoch: {} RMSE: {:.2f}"
.
format
(
trainer
.
state
.
epoch
,
metrics
[
'RMSE'
]))
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_
COMPLE
TED
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_
STAR
TED
)
def
log_validation_results
(
trainer
):
def
log_validation_results
(
trainer
):
evaluator
.
run
(
validation
)
evaluator
.
run
(
validation
)
metrics
=
evaluator
.
state
.
metrics
metrics
=
evaluator
.
state
.
metrics
print
(
"Validation Results - Epoch: {} RMSE: {:.2f}"
rmse
=
hartree2kcal
(
metrics
[
'RMSE'
])
.
format
(
trainer
.
state
.
epoch
,
metrics
[
'RMSE'
]))
writer
.
add_scalar
(
'validation_rmse_vs_epoch'
,
rmse
,
trainer
.
state
.
epoch
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_STARTED
)
def
log_time
(
trainer
):
elapsed
=
round
(
timeit
.
default_timer
()
-
start
,
2
)
writer
.
add_scalar
(
'time_vs_epoch'
,
elapsed
,
trainer
.
state
.
epoch
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
ITERATION_COMPLETED
)
def
log_loss_and_time
(
trainer
):
iteration
=
trainer
.
state
.
iteration
rmse
=
hartree2kcal
(
math
.
sqrt
(
trainer
.
state
.
output
))
writer
.
add_scalar
(
'training_rmse_vs_iteration'
,
rmse
,
iteration
)
trainer
.
run
(
training
,
max_epochs
=
10
)
trainer
.
run
(
training
,
max_epochs
=
max_epochs
)
examples/training-benchmark.py
View file @
d07bd02c
...
@@ -4,6 +4,7 @@ import ignite
...
@@ -4,6 +4,7 @@ import ignite
import
torchani
import
torchani
import
timeit
import
timeit
import
model
import
model
import
tqdm
chunk_size
=
256
chunk_size
=
256
batch_chunks
=
4
batch_chunks
=
4
...
@@ -33,6 +34,22 @@ optimizer = torch.optim.Adam(nnp.parameters())
...
@@ -33,6 +34,22 @@ optimizer = torch.optim.Adam(nnp.parameters())
trainer
=
ignite
.
engine
.
create_supervised_trainer
(
trainer
=
ignite
.
engine
.
create_supervised_trainer
(
container
,
optimizer
,
torchani
.
ignite
.
energy_mse_loss
)
container
,
optimizer
,
torchani
.
ignite
.
energy_mse_loss
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_STARTED
)
def
init_tqdm
(
trainer
):
trainer
.
state
.
tqdm
=
tqdm
.
tqdm
(
total
=
len
(
dataloader
),
desc
=
'epoch'
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
ITERATION_COMPLETED
)
def
update_tqdm
(
trainer
):
trainer
.
state
.
tqdm
.
update
(
1
)
@
trainer
.
on
(
ignite
.
engine
.
Events
.
EPOCH_COMPLETED
)
def
finalize_tqdm
(
trainer
):
trainer
.
state
.
tqdm
.
close
()
start
=
timeit
.
default_timer
()
start
=
timeit
.
default_timer
()
trainer
.
run
(
dataloader
,
max_epochs
=
1
)
trainer
.
run
(
dataloader
,
max_epochs
=
1
)
elapsed
=
round
(
timeit
.
default_timer
()
-
start
,
2
)
elapsed
=
round
(
timeit
.
default_timer
()
-
start
,
2
)
...
...
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