titu1994/neural-image-assessment

Can't instantiate abstract class DatasetV1 with abstract methods _as_variant_tensor, _inputs

Closed this issue · 5 comments

Using the AVA dataset, we came across the following problems.
It shows that 'TypeError: Can't instantiate abstract class DatasetV1 with abstract methods _as_variant_tensor, _inputs'. We've googled it but cannot find the suitable answer.

Please help us.

Environment:

tensorflow-gpu 1.12.0
keras 2.24
python 3.6.6

Logs:

Traceback (most recent call last):
  File "train_mobilenet.py", line 88, in <module>
    validation_steps=(5000. // batchsize))
  File "/usr/local/lib/python3.6/dist-packages/keras/legacy/interfaces.py", line 91, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/training.py", line 1418, in fit_generator
    initial_epoch=initial_epoch)
  File "/usr/local/lib/python3.6/dist-packages/keras/engine/training_generator.py", line 181, in fit_generator
    generator_output = next(output_generator)
  File "/usr/local/lib/python3.6/dist-packages/keras/utils/data_utils.py", line 709, in get
    six.reraise(*sys.exc_info())
  File "/home/hadoop/anaconda3/lib/python3.6/site-packages/six.py", line 693, in reraise
    raise value
  File "/usr/local/lib/python3.6/dist-packages/keras/utils/data_utils.py", line 685, in get
    inputs = self.queue.get(block=True).get()
  File "/home/hadoop/anaconda3/lib/python3.6/multiprocessing/pool.py", line 644, in get
    raise self._value
  File "/home/hadoop/anaconda3/lib/python3.6/multiprocessing/pool.py", line 119, in worker
    result = (True, func(*args, **kwds))
  File "/usr/local/lib/python3.6/dist-packages/keras/utils/data_utils.py", line 626, in next_sample
    return six.next(_SHARED_SEQUENCES[uid])
  File "/home/hadoop/Documents/demo-ava-1/neural-image-assessment-master/utils/data_loader.py", line 101, in train_generator
    train_dataset = tf.data.Dataset().from_tensor_slices((train_image_paths, train_scores))
TypeError: Can't instantiate abstract class DatasetV1 with abstract methods _as_variant_tensor, _inputs

That's weird. I have the same Keras and TF but such an issue has not occurred ever.

It says abstract class and abstract method. TF.data.Dataset.from_tensor_slices() is pretty old and general way to instantiate a dataset.

I had code like tf.data.Dataset().from_generator with the same problem. Changed it to tf.data.Dataset.from_generator and the problem went away.

@nurpax Thank you very much for the fix. The latest commit fixes this.

I had code like tf.data.Dataset().from_generator with the same problem. Changed it to tf.data.Dataset.from_generator and the problem went away.

thank u for the fix, it is very helpful LOLLL

File "C:\ProgramData\Anaconda3\envs\nima\lib\site-packages\tensorflow_core\python\ops\gen_summary_ops.py", line 191, in create_summary_file_writer
_six.raise_from(_core._status_to_exception(e.code, message), None)
File "", line 3, in raise_from
tensorflow.python.framework.errors_impl.NotFoundError: Failed to create a directory: ./logs\train; No such file or directory [Op:CreateSummaryFileWriter]