3

I get the unexpected error "You must feed a value for placeholder tensor 'input_1' with dtype float" when training the discriminator of a GAN

here the error:

W tensorflow/core/framework/op_kernel.cc:975] Invalid argument: You must feed a value for placeholder tensor 'input_1' with dtype float
     [[Node: input_1 = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
W tensorflow/core/framework/op_kernel.cc:975] Invalid argument: You must feed a value for placeholder tensor 'input_1' with dtype float
     [[Node: input_1 = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
Traceback (most recent call last):
  File "new_model.py", line 204, in <module>
    main()
  File "new_model.py", line 201, in main
    train(nb_epoch=10, BATCH_SIZE=5)
  File "new_model.py", line 176, in train
    d_loss = discriminator.train_on_batch(image_to_dis, label_to_dis)            
  File "/usr/local/lib/python2.7/dist-packages/keras/models.py", line 766, in train_on_batch
    class_weight=class_weight)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/training.py", line 1320, in train_on_batch
    outputs = self.train_function(ins)
  File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 1943, in __call__
    feed_dict=feed_dict)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 766, in run
    run_metadata_ptr)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 964, in _run
    feed_dict_string, options, run_metadata)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1014, in _do_run
    target_list, options, run_metadata)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1034, in _do_call
    raise type(e)(node_def, op, message)
tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'input_1' with dtype float
     [[Node: input_1 = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
     [[Node: moments_4/sufficient_statistics/Shape/_217 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_1267_moments_4/sufficient_statistics/Shape", tensor_type=DT_INT32, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

Caused by op u'input_1', defined at:
  File "new_model.py", line 204, in <module>
    main()
  File "new_model.py", line 201, in main
    train(nb_epoch=10, BATCH_SIZE=5)
  File "new_model.py", line 134, in train
    transformer0 = transform_model()
  File "new_model.py", line 22, in transform_model
    inputs = Input(shape=( 128, 128, 3))
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 1198, in Input
    input_tensor=tensor)
  File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 1116, in __init__
    name=self.name)
  File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 321, in placeholder
    x = tf.placeholder(dtype, shape=shape, name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 1587, in placeholder
    name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 2043, in _placeholder
    name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 759, in apply_op
    op_def=op_def)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2240, in create_op
    original_op=self._default_original_op, op_def=op_def)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1128, in __init__
    self._traceback = _extract_stack()

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'input_1' with dtype float
     [[Node: input_1 = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
     [[Node: moments_4/sufficient_statistics/Shape/_217 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_1267_moments_4/sufficient_statistics/Shape", tensor_type=DT_INT32, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]

it seems the error happens at

d_loss = discriminator.train_on_batch(image_to_dis, label_to_dis)

I'm sure image_to_dis and label_to_dis fit the input of dicriminator however, the error message here

Caused by op u'input_1', defined at:
  File "new_model.py", line 204, in <module>
    main()
  File "new_model.py", line 201, in main
    train(nb_epoch=10, BATCH_SIZE=5)
  File "new_model.py", line 134, in train
    transformer0 = transform_model()
  File "new_model.py", line 22, in transform_model
    inputs = Input(shape=( 128, 128, 3))

it says the error is caused by the input tensor of 'transformer'(it is the generator in this GAN).

my code contains something like 'transformer_with_discriminator = discriminator(transformer)', but the discriminator is compiled without the transformer. I think training the discriminator has nothing to do with the input of 'transformer0'

the whole script is a little long, may I put the link of my model here?

https://github.com/wkcw/keras-face-attribute/blob/master/model%26train.py

image_to_dis.dtype and label_to_dis.dtype are both float32, and I've tried to convert label_to_dis.dtype to int

I really have no idea about this......

Razor
  • 53
  • 1
  • 6
  • 1
    Can you print image_to_dis.dtype and label_to_dis.dtype? – maz Mar 09 '17 at 16:28
  • Maybe show your model? – Nassim Ben Mar 09 '17 at 17:28
  • @maz they are both float32, and I've tried converting label_to_dis.dtype to int. – Razor Mar 10 '17 at 03:10
  • @NassimBen the whole script is a little long, may I put the link of my model here?https://github.com/wkcw/keras-face-attribute/blob/master/model%26train.py – Razor Mar 10 '17 at 03:11
  • Possible duplicate of [Keras train partial model issue (about GAN model)](https://stackoverflow.com/questions/42422646/keras-train-partial-model-issue-about-gan-model) – user10089632 Nov 11 '17 at 01:26

1 Answers1

0

It comes from the batchnormalization. You can see here : https://stackoverflow.com/a/42470757/7137636 how to fix this issue.

If you need more info, ask in comments :)

Community
  • 1
  • 1
Nassim Ben
  • 11,473
  • 1
  • 34
  • 52
  • Sorry for the late reply. I've read your solution, and I'll try it. But I'm confused. From my perspective, there is no difference in "discriminator(generator)" and “make the GAN model with same layers in discriminator”, how does it work? Could it be that the "learning phase" of discriminator cause the error? – Razor Mar 13 '17 at 13:02