jakeret / tf_unet

Generic U-Net Tensorflow implementation for image segmentation
GNU General Public License v3.0
1.9k stars 748 forks source link

TypeError: Fetch argument None has invalid type <class 'NoneType'> #300

Open rubbyaworka opened 3 years ago

rubbyaworka commented 3 years ago

python from __future__ import division, print_function %matplotlib inline import matplotlib.pyplot as plt import matplotlib import numpy as np plt.rcParams['image.cmap'] = 'gist_earth' np.random.seed(98765) `python from tf_unet import image_gen from tf_unet import unet from tf_unet import util

nx = 572 ny = 572

generator = image_gen.GrayScaleDataProvider(nx, ny, cnt=20)

x_test, y_test = generator(1)

fig, ax = plt.subplots(1,2, sharey=True, figsize=(8,4)) ax[0].imshow(x_test[0,...,0], aspect="auto") ax[1].imshow(y_test[0,...,1], aspect="auto")

import tensorflow.compat.v1 as tf tf.disable_v2_behavior()

net = unet.Unet(channels=generator.channels, n_class=generator.n_class, layers=3, features_root=16)

trainer = unet.Trainer(net, optimizer="momentum", opt_kwargs=dict(momentum=0.2))

path = trainer.train(generator, "./unet_trained", training_iters=32, epochs=10, display_step=2) `

the error of the path

TypeError Traceback (most recent call last)

in ----> 1 path = trainer.train(generator, "./unet_trained", training_iters=32, epochs=10, display_step=2) ~/.local/lib/python3.8/site-packages/tf_unet-0.1.2-py3.8.egg/tf_unet/unet.py in train(self, data_provider, output_path, training_iters, epochs, dropout, display_step, restore, write_graph, prediction_path) 447 448 if step % display_step == 0: --> 449 self.output_minibatch_stats(sess, summary_writer, step, batch_x, 450 util.crop_to_shape(batch_y, pred_shape)) 451 ~/.local/lib/python3.8/site-packages/tf_unet-0.1.2-py3.8.egg/tf_unet/unet.py in output_minibatch_stats(self, sess, summary_writer, step, batch_x, batch_y) 486 def output_minibatch_stats(self, sess, summary_writer, step, batch_x, batch_y): 487 # Calculate batch loss and accuracy --> 488 summary_str, loss, acc, predictions = sess.run([self.summary_op, 489 self.net.cost, 490 self.net.accuracy, ~/anaconda3/lib/python3.8/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata) 955 956 try: --> 957 result = self._run(None, fetches, feed_dict, options_ptr, 958 run_metadata_ptr) 959 if run_metadata: ~/anaconda3/lib/python3.8/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata) 1163 1164 # Create a fetch handler to take care of the structure of fetches. -> 1165 fetch_handler = _FetchHandler( 1166 self._graph, fetches, feed_dict_tensor, feed_handles=feed_handles) 1167 ~/anaconda3/lib/python3.8/site-packages/tensorflow/python/client/session.py in __init__(self, graph, fetches, feeds, feed_handles) 475 """ 476 with graph.as_default(): --> 477 self._fetch_mapper = _FetchMapper.for_fetch(fetches) 478 self._fetches = [] 479 self._targets = [] ~/anaconda3/lib/python3.8/site-packages/tensorflow/python/client/session.py in for_fetch(fetch) 264 elif isinstance(fetch, (list, tuple)): 265 # NOTE(touts): This is also the code path for namedtuples. --> 266 return _ListFetchMapper(fetch) 267 elif isinstance(fetch, collections_abc.Mapping): 268 return _DictFetchMapper(fetch) ~/anaconda3/lib/python3.8/site-packages/tensorflow/python/client/session.py in __init__(self, fetches) 376 else: 377 self._fetch_type = type(fetches) --> 378 self._mappers = [_FetchMapper.for_fetch(fetch) for fetch in fetches] 379 self._unique_fetches, self._value_indices = _uniquify_fetches(self._mappers) 380 ~/anaconda3/lib/python3.8/site-packages/tensorflow/python/client/session.py in (.0) 376 else: 377 self._fetch_type = type(fetches) --> 378 self._mappers = [_FetchMapper.for_fetch(fetch) for fetch in fetches] 379 self._unique_fetches, self._value_indices = _uniquify_fetches(self._mappers) 380 ~/anaconda3/lib/python3.8/site-packages/tensorflow/python/client/session.py in for_fetch(fetch) 260 """ 261 if fetch is None: --> 262 raise TypeError('Fetch argument %r has invalid type %r' % 263 (fetch, type(fetch))) 264 elif isinstance(fetch, (list, tuple)): TypeError: Fetch argument None has invalid type
jakeret commented 3 years ago

Hi @rubbyaworka this code hasn't been maintained for quite a while. There is a Tensorflow 2.0 compatible reimplementation of tf_unet available here: https://github.com/jakeret/unet