2017-03-09 131 views
2

「提供佔位符張量'input_1'的值當出現意外錯誤」您必須爲dtype float提供佔位符張量的值'input_1'甘使用具有張量流的keras「您必須爲dtype float」

在這裏的錯誤:

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"]()]] 

似乎在

d_loss = discriminator.train_on_batch(image_to_dis, label_to_dis) 

錯誤發生了,我敢肯定image_to_dis和label_to_dis適合dicriminator的輸入然而,錯誤消息在這裏

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)) 

它說,錯誤是由「變壓器」(它是在該GaN發電機)的輸入張量引起的。

我的代碼包含'transformer_with_discriminator = discriminator(transformer)'之類的東西,但鑑別器編譯時沒有變換器。我認爲訓練鑑別器與'transformer0'的輸入無關

整個腳本有點長,我可以把我的模型的鏈接放在這裏嗎?

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

image_to_dis.dtype和label_to_dis.dtype都是FLOAT32,我已經試過轉換label_to_dis.dtype爲int

我真的沒有這個......

想法
+1

您能打印image_to_dis.dtype和label_to_dis.dtype嗎? – maz

+0

也許顯示你的模型? –

+0

@maz他們都是float32,我試圖將label_to_dis.dtype轉換爲int。 – Razor

回答

0

它來自batchnormalization。你可以在這裏看到:https://stackoverflow.com/a/42470757/7137636如何解決這個問題。

如果您需要更多信息,請在評論中提問:)

+0

對不起,回覆遲了。我已閱讀您的解決方案,我會嘗試。但我很困惑。從我的角度來看,「鑑別器(發生器)」和「在鑑別器中使GAN模型具有相同層」沒有區別,它是如何工作的?鑑別者的「學習階段」是否會導致錯誤? – Razor

相關問題