forked from google-deepmind/deepmind-research
-
Notifications
You must be signed in to change notification settings - Fork 0
/
train_unsup.py
73 lines (65 loc) · 2.03 KB
/
train_unsup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
################################################################################
# Copyright 2019 DeepMind Technologies Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
################################################################################
"""Runs the unsupervised i.i.d benchmark experiments in the paper."""
from absl import app
from absl import flags
from curl import training
flags.DEFINE_enum('dataset', 'mnist', ['mnist', 'omniglot'], 'Dataset.')
FLAGS = flags.FLAGS
def main(unused_argv):
if FLAGS.dataset == 'mnist':
n_y = 25
n_y_active = 1
n_z = 50
else: # omniglot
n_y = 100
n_y_active = 1
n_z = 100
training.run_training(
dataset=FLAGS.dataset,
n_y=n_y,
n_y_active=n_y_active,
n_z=n_z,
output_type='bernoulli',
training_data_type='iid',
n_concurrent_classes=1,
lr_init=5e-4,
lr_factor=1.,
lr_schedule=[1],
blend_classes=False,
train_supervised=False,
n_steps=100000,
report_interval=10000,
knn_values=[3],
random_seed=1,
encoder_kwargs={
'encoder_type': 'multi',
'n_enc': [500, 500],
'enc_strides': [1],
},
decoder_kwargs={
'decoder_type': 'single',
'n_dec': [500],
'dec_up_strides': None,
},
dynamic_expansion=True,
ll_thresh=-200.0,
classify_with_samples=True,
gen_replay_type=None,
use_supervised_replay=False,
)
if __name__ == '__main__':
app.run(main)