Skip to content

Commit 6907665

Browse files
zsdonghaoJonathan DEKHTIAR
authored and
Jonathan DEKHTIAR
committed
remove graph api (#818)
* remove graph api * changelog * timeout test * codacy * remove graph in tl.models * increase timeout time * remove tl in tests * Additional Cleaning * Timeout time added * tests directory refactored * Tests Fix Update python, 2.6 * YAPF Cleaning * get_env fix * Python 2 fix applied * Python 2 Error fixes * TL 1.10.1rc0 released * Doc and YAPF Fix * Test YAPF Fix * RTD Lazy Import Fix * Travis config restored * Revert "Travis config restored" This reverts commit 03fe83e.
1 parent badd3d5 commit 6907665

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+917
-216
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,4 @@ update_tl.py
127127
*.gz
128128
*.npz
129129
venv_doc/
130+
venv_py2/

.travis.yml

+4-8
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,12 @@ env:
2121
# Backward Compatibility in insured for release less than 1 year old.
2222
# https://pypi.org/project/tensorflow/#history
2323
matrix:
24-
- _TF_VERSION=1.10.0 # Remove on Apr 28, 2019
24+
- _TF_VERSION=1.10.1 # Remove on Apr 28, 2019
2525
- _TF_VERSION=1.9.0 # Remove on Apr 28, 2019
2626
- _TF_VERSION=1.8.0 # Remove on Apr 28, 2019
2727
- _TF_VERSION=1.7.1 # Remove on May 08, 2019
2828
- _TF_VERSION=1.7.0 # Remove on Mar 29, 2019
2929
- _TF_VERSION=1.6.0 # Remove on Mar 01, 2019
30-
# - _TF_VERSION=1.5.1 # Remove on Mar 20, 2019
31-
# - _TF_VERSION=1.5.0 # Remove on Jan 26, 2019
32-
# - _TF_VERSION=1.4.1 # Remove on Dec 08, 2018
33-
# - _TF_VERSION=1.4.0 # Remove on Nov 01, 2018
3430

3531
global:
3632

@@ -61,7 +57,7 @@ install:
6157
if [[ -v _DOC_AND_YAPF_TEST ]]; then
6258
pip install tensorflow
6359
pip install yapf
64-
pip install -r requirements/requirements_doc.txt
60+
pip install -e .[doc]
6561
else
6662
pip install tensorflow==$_TF_VERSION
6763
pip install -e .[all_cpu_dev]
@@ -97,7 +93,7 @@ deploy:
9793
on:
9894
tags: true
9995
python: '3.6'
100-
condition: '$_TF_VERSION = 1.10.0'
96+
condition: '$_TF_VERSION = 1.10.1'
10197

10298
# Documentation: https://docs.travis-ci.com/user/deployment/releases/
10399
- provider: releases
@@ -110,4 +106,4 @@ deploy:
110106
on:
111107
tags: true
112108
python: '3.6'
113-
condition: '$_TF_VERSION = 1.10.0'
109+
condition: '$_TF_VERSION = 1.10.1'

CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ To release a new version, please update the changelog as followed:
145145
### Removed
146146

147147
- `conv_layers()` has been removed in both vgg16 and vgg19(PR #710)
148+
- graph API (PR #818)
148149

149150
### Fixed
150151

@@ -171,7 +172,7 @@ To release a new version, please update the changelog as followed:
171172
- @DEKHTIARJonathan: #739 #747 #750 #754
172173
- @lgarithm: #705 #700
173174
- @OwenLiuzZ: #698 #710 #775 #776
174-
- @zsdonghao: #711 #712 #734 #736 #737 #700 #751 #809
175+
- @zsdonghao: #711 #712 #734 #736 #737 #700 #751 #809 #818
175176
- @luomai: #700 #751 #766 #802
176177
- @XJTUWYD: #735
177178
- @mutewall: #735

docs/modules/files.rst

+17-15
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,14 @@ Load benchmark dataset, save and restore model, save and load variables.
3131
load_and_assign_npz
3232
save_npz_dict
3333
load_and_assign_npz_dict
34+
save_ckpt
35+
load_ckpt
36+
37+
..
3438
save_graph
3539
load_graph
3640
save_graph_and_params
3741
load_graph_and_params
38-
save_ckpt
39-
load_ckpt
40-
4142
4243
save_any_to_npy
4344
load_npy_to_any
@@ -183,21 +184,22 @@ Load network from dict (npz)
183184
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
184185
.. autofunction:: load_and_assign_npz_dict
185186

186-
Save network architecture as a graph
187-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
188-
.. autofunction:: save_graph
187+
..
188+
Save network architecture as a graph
189+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
190+
.. autofunction:: save_graph
189191
190-
Load network architecture from a graph
191-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
192-
.. autofunction:: load_graph
192+
Load network architecture from a graph
193+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
194+
.. autofunction:: load_graph
193195

194-
Save network architecture and parameters
195-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
196-
.. autofunction:: save_graph_and_params
196+
Save network architecture and parameters
197+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
198+
.. autofunction:: save_graph_and_params
197199

198-
Load network architecture and parameters
199-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
200-
.. autofunction:: load_graph_and_params
200+
Load network architecture and parameters
201+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
202+
.. autofunction:: load_graph_and_params
201203

202204
Save network into ckpt
203205
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def req_file(filename, folder="requirements"):
8989

9090

9191
# Readthedocs requires TF 1.5.0 to build properly
92-
if os.environ.get('READTHEDOCS', None) == 'True':
92+
if 'READTHEDOCS' in os.environ:
9393
ext_modules = [
9494
Extension('install_requirements_for_rtd', []),
9595
]

tensorlayer/__init__.py

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
# -*- coding: utf-8 -*-
33
"""Deep learning and Reinforcement learning library for Researchers and Engineers"""
44

5-
from __future__ import absolute_import
6-
75
import os
86
from distutils.version import LooseVersion
97

tensorlayer/db.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99

1010
import gridfs
1111
import pymongo
12-
from tensorlayer.files import load_graph_and_params, exists_or_mkdir, del_folder
12+
13+
# from tensorlayer.files import load_graph_and_params
14+
from tensorlayer.files import exists_or_mkdir
15+
from tensorlayer.files import del_folder
16+
1317
from tensorlayer import logging
1418

1519
import tensorflow as tf

tensorlayer/distributed.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def __init__(
107107
self, training_dataset, build_training_func, optimizer, optimizer_args, batch_size=32, num_epochs=100,
108108
prefetch_buffer_size=None, shuffle_data=False, shuffle_seed=0, checkpoint_dir=None,
109109
scaling_learning_rate=True, log_step_size=1, validation_dataset=None, build_validation_func=None,
110-
max_iteration=math.inf
110+
max_iteration=float('inf')
111111
):
112112
# Initialize Horovod.
113113
hvd.init()

tensorlayer/files/__init__.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@
6767
'save_ckpt',
6868
'save_npz',
6969
'save_npz_dict',
70-
'save_graph',
71-
'load_graph',
72-
'save_graph_and_params',
73-
'load_graph_and_params',
70+
#'save_graph',
71+
#'load_graph',
72+
#'save_graph_and_params',
73+
#'load_graph_and_params',
7474
]

tensorlayer/files/utils.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141

4242
import tensorflow as tf
4343
from tensorflow.python.platform import gfile
44-
import tensorlayer as tl # it is used in eval() of _graph2net
44+
45+
import tensorlayer as tl
4546
from tensorlayer import logging
4647
from tensorlayer import nlp
4748
from tensorlayer import utils
@@ -71,10 +72,10 @@
7172
'save_ckpt',
7273
'save_npz',
7374
'save_npz_dict',
74-
'save_graph',
75-
'load_graph',
76-
'save_graph_and_params',
77-
'load_graph_and_params',
75+
#'save_graph',
76+
#'load_graph',
77+
#'save_graph_and_params',
78+
#'load_graph_and_params',
7879
]
7980

8081

@@ -1894,6 +1895,7 @@ def load_ckpt(sess=None, mode_name='model.ckpt', save_dir='checkpoint', var_list
18941895
logging.info("[*] load ckpt fail ...")
18951896

18961897

1898+
'''
18971899
def save_graph(network=None, name='graph.pkl'):
18981900
"""Save the architecture of TL model into a pickle file. No parameters be saved.
18991901
@@ -2058,6 +2060,7 @@ def load_graph_and_params(name='model', sess=None):
20582060
network = load_graph(name=os.path.join(name, 'graph.pkl'))
20592061
load_and_assign_npz(sess=sess, name=os.path.join(name, 'params.npz'), network=network)
20602062
return network
2063+
'''
20612064

20622065

20632066
def save_any_to_npy(save_dict=None, name='file.npy'):

tensorlayer/layers/core.py

-52
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,9 @@ def __init__(self, prev_layer, act=None, name=None, *args, **kwargs):
116116

117117
self.inputs = None
118118
self.outputs = None
119-
self.graph = {}
120119
self.all_layers = list()
121120
self.all_params = list()
122121
self.all_drop = dict()
123-
self.all_graphs = list()
124-
125-
self.layer_args = self._get_init_args(skip=4)
126122

127123
if name is None:
128124
raise ValueError('Layer must have a name.')
@@ -146,7 +142,6 @@ def __init__(self, prev_layer, act=None, name=None, *args, **kwargs):
146142
self._add_layers(prev_layer.all_layers)
147143
self._add_params(prev_layer.all_params)
148144
self._add_dropout_layers(prev_layer.all_drop)
149-
self._add_graphs(prev_layer.all_graphs)
150145

151146
elif isinstance(prev_layer, list):
152147
# 2. for layer have multiply inputs i.e. ConcatLayer
@@ -156,7 +151,6 @@ def __init__(self, prev_layer, act=None, name=None, *args, **kwargs):
156151
self._add_layers(sum([l.all_layers for l in prev_layer], []))
157152
self._add_params(sum([l.all_params for l in prev_layer], []))
158153
self._add_dropout_layers(sum([list(l.all_drop.items()) for l in prev_layer], []))
159-
self._add_graphs(sum([l.all_graphs for l in prev_layer], []))
160154

161155
elif isinstance(prev_layer, tf.Tensor) or isinstance(prev_layer, tf.Variable): # placeholders
162156
if self.__class__.__name__ not in ['InputLayer', 'OneHotInputLayer', 'Word2vecEmbeddingInputlayer',
@@ -165,49 +159,15 @@ def __init__(self, prev_layer, act=None, name=None, *args, **kwargs):
165159

166160
self.inputs = prev_layer
167161

168-
self._add_graphs(
169-
(
170-
self.inputs.name, # .split(':')[0],
171-
{
172-
'shape': self.inputs.get_shape().as_list(),
173-
'dtype': self.inputs.dtype.name,
174-
'class': 'placeholder',
175-
'prev_layer': None
176-
}
177-
)
178-
)
179-
180162
elif prev_layer is not None:
181163
# 4. tl.models
182164
self._add_layers(prev_layer.all_layers)
183165
self._add_params(prev_layer.all_params)
184166
self._add_dropout_layers(prev_layer.all_drop)
185-
self._add_graphs(prev_layer.all_graphs)
186167

187168
if hasattr(prev_layer, "outputs"):
188169
self.inputs = prev_layer.outputs
189170

190-
# TL Graph
191-
if isinstance(prev_layer, list): # e.g. ConcatLayer, ElementwiseLayer have multiply previous layers
192-
_list = []
193-
for layer in prev_layer:
194-
_list.append(layer.name)
195-
self.graph.update({'class': self.__class__.__name__.split('.')[-1], 'prev_layer': _list})
196-
elif prev_layer is None: #
197-
self.graph.update({'class': self.__class__.__name__.split('.')[-1], 'prev_layer': None})
198-
else: # normal layers e.g. Conv2d
199-
self.graph.update({'class': self.__class__.__name__.split('.')[-1], 'prev_layer': prev_layer.name})
200-
# if act: ## convert activation from function to string
201-
# try:
202-
# act = act.__name__
203-
# except:
204-
# pass
205-
# self.graph.update({'act': act})
206-
# print(self.layer_args)
207-
self.graph.update(self.layer_args)
208-
# print(self.graph)
209-
self._add_graphs((self.name, self.graph))
210-
211171
def print_params(self, details=True, session=None):
212172
"""Print all info of parameters in the network"""
213173
for i, p in enumerate(self.all_params):
@@ -278,7 +238,6 @@ def __getitem__(self, key):
278238
net_new._add_layers(net_new.outputs)
279239

280240
net_new._add_params(self.all_params)
281-
net_new._add_graphs(self.all_graphs)
282241
net_new._add_dropout_layers(self.all_drop)
283242

284243
return net_new
@@ -353,17 +312,6 @@ def _add_params(self, params):
353312

354313
self.all_params = list_remove_repeat(self.all_params)
355314

356-
@protected_method
357-
def _add_graphs(self, graphs):
358-
359-
if isinstance(graphs, list):
360-
self.all_graphs.extend(list(graphs))
361-
362-
else:
363-
self.all_graphs.append(graphs)
364-
365-
# self.all_graphs = list_remove_repeat(self.all_graphs) # cannot repeat
366-
367315
@protected_method
368316
def _add_dropout_layers(self, drop_layers):
369317
if isinstance(drop_layers, dict) or isinstance(drop_layers, list):

tensorlayer/layers/utils.py

-4
Original file line numberDiff line numberDiff line change
@@ -296,23 +296,19 @@ def merge_networks(layers=None):
296296

297297
all_params = []
298298
all_layers = []
299-
all_graphs = []
300299
all_drop = {}
301300

302301
for l in layers:
303302
all_params.extend(l.all_params)
304303
all_layers.extend(l.all_layers)
305-
all_graphs.extend(l.all_graphs)
306304
all_drop.update(l.all_drop)
307305

308306
layer.all_params = list(all_params)
309307
layer.all_layers = list(all_layers)
310-
layer.all_graphs = list(all_graphs)
311308
layer.all_drop = dict(all_drop)
312309

313310
layer.all_layers = list_remove_repeat(layer.all_layers)
314311
layer.all_params = list_remove_repeat(layer.all_params)
315-
layer.all_graphs = list_remove_repeat(layer.all_graphs)
316312

317313
return layer
318314

tensorlayer/lazy_imports.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
Commonly used nitime lazy imports are also defined in :mod:`nitime.lazy`, so
1818
they can be reused throughout nitime.
1919
"""
20+
import os
2021
import sys
2122
import types
2223

@@ -76,7 +77,7 @@ def __repr__(self):
7677
return "<module '%s' will be lazily loaded>" % object.__getattribute__(self, '__name__')
7778

7879

79-
if 'sphinx' in sys.modules:
80+
if 'READTHEDOCS' in os.environ:
8081
lazy_doc = """
8182
WARNING: To get Sphinx documentation to build we disable
8283
LazyImports, which makes Sphinx incorrectly report this

tensorlayer/models/mobilenetv1.py

-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ def __init__(self, x, end_with='out', is_train=False, reuse=None):
9090
self.all_params = list(self.net.all_params)
9191
self.all_layers = list(self.net.all_layers)
9292
self.all_drop = dict(self.net.all_drop)
93-
self.all_graphs = list(self.net.all_graphs)
9493
self.print_layers = self.net.print_layers
9594
self.print_params = self.net.print_params
9695

tensorlayer/models/squeezenetv1.py

-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ def __init__(self, x, end_with='output', is_train=False, reuse=None):
9191
self.all_params = list(self.net.all_params)
9292
self.all_layers = list(self.net.all_layers)
9393
self.all_drop = dict(self.net.all_drop)
94-
self.all_graphs = list(self.net.all_graphs)
9594
self.print_layers = self.net.print_layers
9695
self.print_params = self.net.print_params
9796

tensorlayer/models/vgg16.py

-1
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,6 @@ def __init__(self, x, end_with='fc3_relu', reuse=None):
214214
self.all_params = list(self.net.all_params)
215215
self.all_layers = list(self.net.all_layers)
216216
self.all_drop = dict(self.net.all_drop)
217-
self.all_graphs = list(self.net.all_graphs)
218217

219218
self.print_layers = self.net.print_layers
220219
self.print_params = self.net.print_params

tensorlayer/models/vgg19.py

-1
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,5 @@ def __init__(self, x, end_with='fc3_relu', reuse=None):
256256
self.all_params = self.net.all_params
257257
self.all_layers = self.net.all_layers
258258
self.all_drop = self.net.all_drop
259-
self.all_graphs = list(self.net.all_graphs)
260259
self.print_layers = self.net.print_layers
261260
self.print_params = self.net.print_params

tensorlayer/package_info.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"""Deep learning and Reinforcement learning library for Researchers and Engineers"""
44

55
# Use the following formatting: (major, minor, patch, prerelease)
6-
VERSION = (1, 10, 0, "")
6+
VERSION = (1, 10, 1, "rc0")
77
__shortversion__ = '.'.join(map(str, VERSION[:3]))
88
__version__ = '.'.join(map(str, VERSION[:3])) + "".join(VERSION[3:])
99

tests/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)