Compare commits

..
40 Commits
Author SHA1 Message Date
William Falcon 8c00c4a3cd release v0.5.1.2 2019-10-06 00:08:17 -04:00
William Falcon 3b9e97fb96 Merge branch 'master' into docs 2019-10-05 23:51:36 -04:00
William Falcon 438a4f74d0 cleaned up test_tube logger 2019-10-05 23:46:09 -04:00
William Falcon d0a9c92326 cleaned up test_tube logger 2019-10-05 23:35:10 -04:00
William Falcon d0a2438e22 cleaned up test_tube logger 2019-10-05 23:23:38 -04:00
William Falcon 4e1c90d892 cleaning up docs 2019-10-05 20:50:40 -04:00
William Falcon dccab6ce19 cleaning up demos 2019-10-05 16:38:48 -04:00
William Falcon 602236ecf2 cleaning up demos 2019-10-05 16:35:39 -04:00
William Falcon f1caeb49cc cleaning up demos 2019-10-05 16:33:49 -04:00
William Falcon 1c45edd192 cleaning up demos 2019-10-05 16:30:27 -04:00
William Falcon dd85e1c600 cleaning up demos 2019-10-05 16:26:16 -04:00
William Falcon ae8f6866bb cleaning up demos 2019-10-05 16:25:17 -04:00
William Falcon 35d85b2de1 cleaning up demos 2019-10-05 16:24:02 -04:00
William Falcon d63c19539f cleaning up demos 2019-10-05 16:21:19 -04:00
William Falcon 0d86302e05 cleaning up demos 2019-10-05 16:19:53 -04:00
William Falcon d179ad6d1d cleaning up demos 2019-10-05 16:16:48 -04:00
William Falcon 221c10c8c3 cleaning up demos 2019-10-05 16:14:05 -04:00
William Falcon 90faf9118c cleaning up demos 2019-10-05 16:12:29 -04:00
William Falcon a00e24ed80 cleaning up demos 2019-10-05 16:09:48 -04:00
William Falcon 5c99da5861 cleaning up demos 2019-10-05 16:07:00 -04:00
William Falcon d3ca836024 cleaning up demos 2019-10-05 16:05:42 -04:00
William Falcon d6c79644af cleaning up demos 2019-10-05 16:01:27 -04:00
William Falcon 56179bdbbb cleaning up demos 2019-10-05 16:00:32 -04:00
William Falcon a3df04f049 cleaning up demos 2019-10-05 15:57:31 -04:00
William Falcon 170262ff73 cleaning up demos 2019-10-05 15:54:48 -04:00
William Falcon 18f58d4bf4 cleaning up demos 2019-10-05 15:52:52 -04:00
William Falcon 7b982f2280 cleaning up demos 2019-10-05 15:48:15 -04:00
William Falcon 7b5a40b170 cleaning up demos 2019-10-05 15:45:41 -04:00
William Falcon e7f15e4e89 cleaning up demos 2019-10-05 15:39:37 -04:00
William Falcon c0c1cf058f cleaning up demos 2019-10-05 15:36:12 -04:00
William Falcon 6be5fb3cf7 cleaning up demos 2019-10-05 15:32:54 -04:00
William Falcon 45f36d3e74 cleaning up demos 2019-10-05 15:21:32 -04:00
William Falcon 0994cd9b09 cleaning up demos 2019-10-05 15:20:54 -04:00
William Falcon f02856c0bc cleaning up demos 2019-10-05 15:15:28 -04:00
William Falcon 67de4c241e cleaning up demos 2019-10-05 15:14:34 -04:00
William Falcon a7e154e643 cleaning up demos 2019-10-05 15:08:39 -04:00
William Falcon f2fb219bfe cleaning up demos 2019-10-05 15:05:23 -04:00
William Falcon e2bf0cda07 cleaning up demos 2019-10-05 15:04:22 -04:00
William Falcon 149628a003 cleaning up demos 2019-10-05 15:02:46 -04:00
William Falcon ac4216f95c cleaning up demos 2019-10-05 15:00:58 -04:00
7 changed files with 62 additions and 69 deletions
-2
View File
@@ -17,8 +17,6 @@
[![ReadTheDocs](https://readthedocs.org/projects/pytorch-lightning/badge/?version=latest)](https://pytorch-lightning.readthedocs.io/en/latest)
[![Gitter](https://badges.gitter.im/PyTorch-Lightning/community.svg)](https://gitter.im/PyTorch-Lightning/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![license](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/williamFalcon/pytorch-lightning/blob/master/LICENSE)
[![Next Release](https://img.shields.io/badge/Next%20Release-Nov%206-<COLOR>.svg)](https://shields.io/)
<!--
removed until codecov badge isn't empy. likely a config error showing nothing on master.
[![codecov](https://codecov.io/gh/Borda/pytorch-lightning/branch/master/graph/badge.svg)](https://codecov.io/gh/Borda/pytorch-lightning)
@@ -104,8 +104,7 @@ class LightningTestModelBase(LightningModule):
if self.trainer.batch_nb % 1 == 0:
output = OrderedDict({
'loss': loss_val,
'progress_bar': {'some_val': loss_val * loss_val},
'log': {'train_some_val': loss_val * loss_val},
'progress_bar': {'some_val': loss_val * loss_val}
})
return output
@@ -105,7 +105,7 @@ class LightningValidationMixin(LightningValidationStepMixin):
val_acc_mean /= len(outputs)
tqdm_dict = {'val_loss': val_loss_mean.item(), 'val_acc': val_acc_mean.item()}
results = {'progress_bar': tqdm_dict, 'log': tqdm_dict}
results = {'progress_bar': tqdm_dict}
return results
+4 -4
View File
@@ -183,7 +183,6 @@ class Trainer(TrainerIO):
version=self.slurm_job_id,
name='lightning_logs'
)
self.logger.rank = 0
# configure checkpoint callback
self.checkpoint_callback = checkpoint_callback
@@ -1160,14 +1159,12 @@ class Trainer(TrainerIO):
def __metrics_to_scalars(self, metrics):
new_metrics = {}
for k, v in metrics.items():
if isinstance(v, torch.Tensor):
if type(v) is torch.Tensor:
v = v.item()
if type(v) is dict:
v = self.__metrics_to_scalars(v)
new_metrics[k] = v
return new_metrics
def __log_vals_blacklist(self):
@@ -1338,6 +1335,7 @@ class Trainer(TrainerIO):
# track progress bar metrics
self.__add_tqdm_metrics(progress_bar_metrics)
all_log_metrics.append(log_metrics)
# accumulate loss
@@ -1404,6 +1402,7 @@ class Trainer(TrainerIO):
# collapse all metrics into one dict
all_log_metrics = {k: v for d in all_log_metrics for k, v in d.items()}
return 0, grad_norm_dic, all_log_metrics
def __run_evaluation(self, test=False):
@@ -1444,6 +1443,7 @@ class Trainer(TrainerIO):
dataloaders,
max_batches,
test)
_, progress_bar_metrics, log_metrics = self.__process_output(eval_results)
# add metrics to prog bar
+1 -6
View File
@@ -5,7 +5,7 @@ import pdb
from subprocess import call
import torch
import torch.distributed as dist
from pytorch_lightning.pt_overrides.override_data_parallel import (
LightningDistributedDataParallel, LightningDataParallel)
@@ -35,11 +35,6 @@ class TrainerIO(object):
# if script called from hpc resubmit, load weights
self.restore_hpc_weights_if_needed(model)
# wait for all models to restore weights
if self.use_ddp or self.use_ddp2:
# wait for all processes to catch up
dist.barrier()
def restore_state_if_checkpoint_exists(self, model):
# do nothing if there's not dir or callback
no_ckpt_callback = self.checkpoint_callback is None
+1 -1
View File
@@ -14,7 +14,7 @@ from setuptools import setup, find_packages
# engineer specific practices
setup(
name='pytorch-lightning',
version='0.5.1.3',
version='0.5.1.2',
description='The Keras for ML researchers using PyTorch',
author='William Falcon',
author_email='waf2107@columbia.edu',
+54 -53
View File
@@ -14,8 +14,7 @@ from torch.utils.data import DataLoader
from torchvision.datasets import MNIST
import numpy as np
import pdb
# from test_models import assert_ok_test_acc, load_model, \
# clear_save_dir, get_test_tube_logger, get_hparams, init_save_dir
from . import test_models
class CoolModel(pl.LightningModule):
@@ -59,55 +58,57 @@ class CoolModel(pl.LightningModule):
@pl.data_loader
def test_dataloader(self):
return DataLoader(MNIST('path/to/save', train=False), batch_size=32)
#
#
# def main():
# """
# Make sure DDP + AMP continue training correctly
# :return:
# """
# """
# Make sure DDP2 works
# :return:
# """
# hparams = get_hparams()
# model = LightningTestModel(hparams)
#
# save_dir = init_save_dir()
#
# # logger file to get meta
# logger = get_test_tube_logger(False)
# logger.log_hyperparams(hparams)
# logger.save()
#
# # logger file to get weights
# checkpoint = ModelCheckpoint(save_dir)
#
# trainer_options = dict(
# show_progress_bar=True,
# max_nb_epochs=1,
# train_percent_check=0.4,
# val_percent_check=0.2,
# checkpoint_callback=checkpoint,
# logger=logger,
# gpus=[0, 1],
# distributed_backend='dp'
# )
#
# # fit model
# trainer = Trainer(**trainer_options)
# result = trainer.fit(model)
#
# # correct result and ok accuracy
# assert result == 1, 'training failed to complete'
# pretrained_model = load_model(logger.experiment, save_dir, module_class=LightningTestModel)
#
# new_trainer = Trainer(**trainer_options)
# new_trainer.test(pretrained_model)
#
# # test we have good test accuracy
# assert_ok_test_acc(new_trainer)
# clear_save_dir()
# if __name__ == '__main__':
# main()
def main():
"""
Make sure DDP + AMP continue training correctly
:return:
"""
"""
Make sure DDP2 works
:return:
"""
hparams = test_models.get_hparams()
model = LightningTestModel(hparams)
save_dir = test_models.init_save_dir()
# logger file to get meta
logger = test_models.get_test_tube_logger(False)
logger.log_hyperparams(hparams)
logger.save()
# logger file to get weights
checkpoint = ModelCheckpoint(save_dir)
trainer_options = dict(
show_progress_bar=True,
max_nb_epochs=1,
train_percent_check=0.4,
val_percent_check=0.2,
checkpoint_callback=checkpoint,
logger=logger,
gpus=[0, 1],
distributed_backend='dp'
)
# fit model
trainer = Trainer(**trainer_options)
result = trainer.fit(model)
# correct result and ok accuracy
assert result == 1, 'training failed to complete'
pretrained_model = test_models.load_model(logger.experiment, save_dir,
module_class=LightningTestModel)
new_trainer = Trainer(**trainer_options)
new_trainer.test(pretrained_model)
# test we have good test accuracy
test_models.assert_ok_test_acc(new_trainer)
test_models.clear_save_dir()
if __name__ == '__main__':
main()