Skip to content

Commit

Permalink
huge revamp of project structure, fix some bugs to support python 3
Browse files Browse the repository at this point in the history
  • Loading branch information
Tony Song committed Jul 28, 2017
1 parent d1b8145 commit e884fe8
Show file tree
Hide file tree
Showing 57 changed files with 119 additions and 108 deletions.
File renamed without changes.
Binary file added a_nice_mc/__pycache__/__init__.cpython-35.pyc
Binary file not shown.
File renamed without changes.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
import tensorflow as tf
from utils.layers import dense, lrelu
from a_nice_mc.utils.layers import dense, lrelu


class Discriminator(object):
Expand Down
2 changes: 1 addition & 1 deletion models/generator.py → a_nice_mc/models/generator.py
Original file line number Diff line number Diff line change
@@ -1,4 1,4 @@
from utils.nice import NiceLayer, NiceNetwork
from a_nice_mc.utils.nice import NiceLayer, NiceNetwork


def create_nice_network(x_dim, v_dim, args):
Expand Down
File renamed without changes.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,8 1,8 @@
import tensorflow as tf
import numpy as np
from objectives import Energy
from utils.evaluation import effective_sample_size, acceptance_rate
from utils.logger import save_ess, create_logger
import tensorflow as tf
from a_nice_mc.objectives import Energy
from a_nice_mc.utils.evaluation import effective_sample_size, acceptance_rate
from a_nice_mc.utils.logger import save_ess, create_logger

logger = create_logger(__name__)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
import numpy as np
from objectives.bayes_logistic_regression import BayesianLogisticRegression
from a_nice_mc.objectives.bayes_logistic_regression import BayesianLogisticRegression


class Australian(BayesianLogisticRegression):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
import numpy as np
from objectives.bayes_logistic_regression import BayesianLogisticRegression
from a_nice_mc.objectives.bayes_logistic_regression import BayesianLogisticRegression


class German(BayesianLogisticRegression):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
import numpy as np
from objectives.bayes_logistic_regression import BayesianLogisticRegression
from a_nice_mc.objectives.bayes_logistic_regression import BayesianLogisticRegression


class Heart(BayesianLogisticRegression):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 1,5 @@
import numpy as np
from objectives.bayes_logistic_regression import BayesianLogisticRegression
from a_nice_mc.objectives.bayes_logistic_regression import BayesianLogisticRegression


class Synthetic(BayesianLogisticRegression):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 1,7 @@
import numpy as np
from objectives import Energy
from utils.evaluation import effective_sample_size, acceptance_rate
from utils.logger import save_ess, create_logger
from .. import Energy
from ...utils.evaluation import effective_sample_size, acceptance_rate
from ...utils.logger import save_ess, create_logger

logger = create_logger(__name__)

Expand Down
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,7 1,8 @@
import tensorflow as tf
import numpy as np
from objectives.expression import Expression
from utils.logger import create_logger
import tensorflow as tf
from a_nice_mc.objectives.expression import Expression
from a_nice_mc.utils.logger import create_logger


logger = create_logger(__name__)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 1,7 @@
import tensorflow as tf
import numpy as np
from objectives.expression import Expression
from utils.logger import create_logger
import tensorflow as tf
from a_nice_mc.objectives.expression import Expression
from a_nice_mc.utils.logger import create_logger

logger = create_logger(__name__)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 1,7 @@
import tensorflow as tf
import numpy as np
from objectives.expression import Expression
from utils.logger import create_logger
import tensorflow as tf
from a_nice_mc.objectives.expression import Expression
from a_nice_mc.utils.logger import create_logger

logger = create_logger(__name__)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 1,7 @@
import tensorflow as tf
import numpy as np
from objectives.expression import Expression
from utils.logger import create_logger
import tensorflow as tf
from a_nice_mc.objectives.expression import Expression
from a_nice_mc.utils.logger import create_logger

logger = create_logger(__name__)

Expand Down
File renamed without changes.
Binary file added a_nice_mc/train/__pycache__/__init__.cpython-35.pyc
Binary file not shown.
Binary file not shown.
9 changes: 4 additions & 5 deletions train/wgan_nll.py → a_nice_mc/train/wgan_nll.py
Original file line number Diff line number Diff line change
@@ -1,12 1,11 @@
import os
import time

import numpy as np
import os
import tensorflow as tf

from utils.bootstrap import Buffer
from utils.logger import create_logger
from utils.nice import TrainingOperator, InferenceOperator
from a_nice_mc.utils.bootstrap import Buffer
from a_nice_mc.utils.logger import create_logger
from a_nice_mc.utils.nice import TrainingOperator, InferenceOperator


class Trainer(object):
Expand Down
Empty file added a_nice_mc/utils/__init__.py
Empty file.
Binary file added a_nice_mc/utils/__pycache__/__init__.cpython-35.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added a_nice_mc/utils/__pycache__/hmc.cpython-35.pyc
Binary file not shown.
Binary file added a_nice_mc/utils/__pycache__/layers.cpython-35.pyc
Binary file not shown.
Binary file added a_nice_mc/utils/__pycache__/logger.cpython-35.pyc
Binary file not shown.
Binary file added a_nice_mc/utils/__pycache__/nice.cpython-35.pyc
Binary file not shown.
File renamed without changes.
File renamed without changes.
10 changes: 6 additions & 4 deletions utils/hmc/sampler.py → a_nice_mc/utils/hmc.py
Original file line number Diff line number Diff line change
@@ -1,7 1,8 @@
import tensorflow as tf
import numpy as np
import time
from utils.logger import create_logger

import numpy as np
import tensorflow as tf
from a_nice_mc.utils.logger import create_logger

logger = create_logger(__name__)

Expand Down Expand Up @@ -99,7 100,8 @@ def __init__(self, energy_fn, prior, stepsize=0.1, n_steps=10,
self.stepsize = tf.Variable(stepsize)
self.avg_acceptance_rate = tf.Variable(target_acceptance_rate)

def fn((z, s, a), x):
def fn(zsa, x):
z, s, a = zsa
accept, final_pos, final_vel = hmc_move(
z,
energy_fn,
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
10 changes: 6 additions & 4 deletions utils/nice/__init__.py → a_nice_mc/utils/nice.py
Original file line number Diff line number Diff line change
@@ -1,7 1,7 @@
import tensorflow as tf

from utils.hmc import hamiltonian, metropolis_hastings_accept
from utils.layers import dense
from a_nice_mc.utils.hmc import hamiltonian, metropolis_hastings_accept
from a_nice_mc.utils.layers import dense


class Layer(object):
Expand Down Expand Up @@ -106,14 106,15 @@ def __init__(self, network):
self.network = network

def __call__(self, inputs, steps):
def fn((z, v), x):
def fn(zv, x):
"""
Transition for training, without Metropolis-Hastings.
`z` is the input state.
`v` is created as a dummy variable to allow output of v_, for training p(v).
:param x: variable only for specifying the number of steps
:return: next state `z_`, and the corresponding auxiliary variable `v_`.
"""
z, v = zv
v = tf.random_normal(shape=tf.stack([tf.shape(z)[0], self.network.v_dim]))
z_, v_ = self.network.forward([z, v])
return z_, v_
Expand All @@ -128,14 129,15 @@ def __init__(self, network, energy_fn):
self.energy_fn = energy_fn

def __call__(self, inputs, steps):
def fn((z, v), x):
def fn(zv, x):
"""
Transition with Metropolis-Hastings.
`z` is the input state.
`v` is created as a dummy variable to allow output of v_, for debugging purposes.
:param x: variable only for specifying the number of steps
:return: next state `z_`, and the corresponding auxiliary variable `v_`.
"""
z, v = zv
v = tf.random_normal(shape=tf.stack([tf.shape(z)[0], self.network.v_dim]))
z_, v_ = self.network([z, v], is_backward=(tf.random_uniform([]) < 0.5))
ep = hamiltonian(z, v, self.energy_fn)
Expand Down
7 changes: 3 additions & 4 deletions utils/statistics.py → a_nice_mc/utils/statistics.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 2,9 @@

import numpy as np
import tensorflow as tf

from evaluation import acceptance_rate, effective_sample_size
from utils.hmc import metropolis_hastings_accept
from utils.logger import create_logger
from a_nice_mc.utils.evaluation import acceptance_rate, effective_sample_size
from a_nice_mc.utils.hmc import metropolis_hastings_accept
from a_nice_mc.utils.logger import create_logger

logger = create_logger(__name__)

Expand Down
6 changes: 3 additions & 3 deletions examples/hmc_ring2d.py
Original file line number Diff line number Diff line change
@@ -1,8 1,8 @@
import os
import sys

import matplotlib.pyplot as plt
import numpy as np
import os

sys.path.append(os.getcwd())

Expand All @@ -12,8 12,8 @@ def prior(bs):


if __name__ == '__main__':
from utils.statistics import NormalMonteCarloSampler
from objectives.expression.ring2d import Ring2d
from a_nice_mc.utils.statistics import NormalMonteCarloSampler
from a_nice_mc.objectives.expression.ring2d import Ring2d

os.environ['CUDA_VISIBLE_DEVICES'] = ''

Expand Down
11 changes: 6 additions & 5 deletions examples/nice_australian.py
Original file line number Diff line number Diff line change
@@ -1,18 1,19 @@
import numpy as np
import os
import sys

import numpy as np

sys.path.append(os.getcwd())


def noise_sampler(bs):
return np.random.normal(0.0, 1.0, [bs, 15])

if __name__ == '__main__':
from objectives.bayes_logistic_regression.australian import Australian
from models.discriminator import MLPDiscriminator
from models.generator import create_nice_network
from train.wgan_nll import Trainer
from a_nice_mc.objectives.bayes_logistic_regression.australian import Australian
from a_nice_mc.models.discriminator import MLPDiscriminator
from a_nice_mc.models.generator import create_nice_network
from a_nice_mc.train.wgan_nll import Trainer

os.environ['CUDA_VISIBLE_DEVICES'] = '0'

Expand Down
11 changes: 6 additions & 5 deletions examples/nice_german.py
Original file line number Diff line number Diff line change
@@ -1,18 1,19 @@
import numpy as np
import os
import sys

import numpy as np

sys.path.append(os.getcwd())


def noise_sampler(bs):
return np.random.normal(0.0, 1.0, [bs, 25])

if __name__ == '__main__':
from objectives.bayes_logistic_regression.german import German
from models.discriminator import MLPDiscriminator
from models.generator import create_nice_network
from train.wgan_nll import Trainer
from a_nice_mc.objectives.bayes_logistic_regression.german import German
from a_nice_mc.models.discriminator import MLPDiscriminator
from a_nice_mc.models.generator import create_nice_network
from a_nice_mc.train.wgan_nll import Trainer

os.environ['CUDA_VISIBLE_DEVICES'] = '0'

Expand Down
11 changes: 6 additions & 5 deletions examples/nice_heart.py
Original file line number Diff line number Diff line change
@@ -1,18 1,19 @@
import numpy as np
import os
import sys

import numpy as np

sys.path.append(os.getcwd())


def noise_sampler(bs):
return np.random.normal(0.0, 1.0, [bs, 14])

if __name__ == '__main__':
from objectives.bayes_logistic_regression.heart import Heart
from models.discriminator import MLPDiscriminator
from models.generator import create_nice_network
from train.wgan_nll import Trainer
from a_nice_mc.objectives.bayes_logistic_regression.heart import Heart
from a_nice_mc.models.discriminator import MLPDiscriminator
from a_nice_mc.models.generator import create_nice_network
from a_nice_mc.train.wgan_nll import Trainer

os.environ['CUDA_VISIBLE_DEVICES'] = '0'

Expand Down
11 changes: 6 additions & 5 deletions examples/nice_lord_of_rings.py
Original file line number Diff line number Diff line change
@@ -1,18 1,19 @@
import numpy as np
import os
import sys

import numpy as np

sys.path.append(os.getcwd())


def noise_sampler(bs):
return np.random.normal(0.0, 1.0, [bs, 2])

if __name__ == '__main__':
from objectives.expression.lord_of_rings import LordOfRings
from models.discriminator import MLPDiscriminator
from models.generator import create_nice_network
from train.wgan_nll import Trainer
from a_nice_mc.objectives.expression.lord_of_rings import LordOfRings
from a_nice_mc.models.discriminator import MLPDiscriminator
from a_nice_mc.models.generator import create_nice_network
from a_nice_mc.train.wgan_nll import Trainer

os.environ['CUDA_VISIBLE_DEVICES'] = ''

Expand Down
11 changes: 6 additions & 5 deletions examples/nice_mog2.py
Original file line number Diff line number Diff line change
@@ -1,18 1,19 @@
import numpy as np
import os
import sys

import numpy as np

sys.path.append(os.getcwd())


def noise_sampler(bs):
return np.random.normal(0.0, 1.0, [bs, 2])

if __name__ == '__main__':
from objectives.expression.mog2 import MixtureOfGaussians
from models.discriminator import MLPDiscriminator
from models.generator import create_nice_network
from train.wgan_nll import Trainer
from a_nice_mc.objectives.expression.mog2 import MixtureOfGaussians
from a_nice_mc.models.discriminator import MLPDiscriminator
from a_nice_mc.models.generator import create_nice_network
from a_nice_mc.train.wgan_nll import Trainer

os.environ['CUDA_VISIBLE_DEVICES'] = ''

Expand Down
11 changes: 6 additions & 5 deletions examples/nice_mog6.py
Original file line number Diff line number Diff line change
@@ -1,18 1,19 @@
import numpy as np
import os
import sys

import numpy as np

sys.path.append(os.getcwd())


def noise_sampler(bs):
return np.random.normal(0.0, 1.0, [bs, 2])

if __name__ == '__main__':
from objectives.expression.mog6 import MixtureOfGaussians
from models.discriminator import MLPDiscriminator
from models.generator import create_nice_network
from train.wgan_nll import Trainer
from a_nice_mc.objectives.expression.mog6 import MixtureOfGaussians
from a_nice_mc.models.discriminator import MLPDiscriminator
from a_nice_mc.models.generator import create_nice_network
from a_nice_mc.train.wgan_nll import Trainer

os.environ['CUDA_VISIBLE_DEVICES'] = ''

Expand Down
Loading

0 comments on commit e884fe8

Please sign in to comment.