tensorflow - InvalidArgumentError: logits and labels must be same size: logits_size=[1,2] labels_size=[1,1] -


i've worked through few other errors that've been thrown, i've never seen error before , after doing research i'm still not sure issue here or how solve it.

i'm guessing reshaping data @ point required, don't why issue, or sizes of [1,2] , [1,1] mean.

the data input script [128 x 128 x 128 ndarray, binary label]

the code i'm using is:

import tensorflow tf import numpy np import os import math  # input arrays x = tf.placeholder(tf.float32, [none, 128, 128, 128, 1]) # labels y = tf.placeholder(tf.float32, none) # learning rate lr = tf.placeholder(tf.float32)  ##### code convnet here #####  # data input_folder = 'data/cubed_data/pp/labelled' images = os.listdir(input_folder) images.sort()  td = [] count = 1 in images:     im = np.load(input_folder + "/" + i)     data = im[0]     data = np.reshape(data, (128, 128, 128, 1))     label = im[1]     lbd = [data, label]     td.append(lbd) test_data = td[:100] train_data = td[100:]  cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=fc3l, labels=y)  correct_prediction = tf.equal(tf.argmax(probs, 1), tf.argmax(y, 0)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))  train_step = tf.train.adamoptimizer(lr).minimize(cross_entropy)  # init init = tf.initialize_all_variables() sess = tf.session() sess.run(init)  def training_step(i, update_test_data, update_train_data):      in range(len(train_data)):          batch = train_data[a]         batch_x = batch[0]         batch_y = batch[1]          # learning rate decay         max_learning_rate = 0.003         min_learning_rate = 0.0001         decay_speed = 2000.0         learning_rate = min_learning_rate + (max_learning_rate - min_learning_rate) * math.exp(-i / decay_speed)          if update_train_data:             a, c = sess.run([accuracy, cross_entropy], {x: [batch_x], y: [batch_y]})             print(str(i) + ": accuracy:" + str(a) + " loss: " + str(c) + " (lr:" + str(learning_rate) + ")")           if update_test_data:             a, c = sess.run([accuracy, cross_entropy], {x: [test_data[0]], y: [test_data[1]]})         print(str(i) + ": ********* epoch " + " ********* test accuracy:" + str(a) + " test loss: " + str(c))          sess.run(train_step, {x: [batch_x], y: [batch_y], lr: learning_rate})  q in range(10000 + 1):     training_step(q, q % 100 == 0, q % 20 == 0) 

..with:

invalid argument: logits , labels must same size: logits_size=[1,2] labels_size=[1,1]      [[node: softmaxcrossentropywithlogits = softmaxcrossentropywithlogits[t=dt_float, _device="/job:localhost/replica:0/task:0/gpu:0"](reshape, reshape_1)]] traceback (most recent call last):   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 972, in _do_call     return fn(*args)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 954, in _run_fn     status, run_metadata)   file "/usr/lib/python3.5/contextlib.py", line 66, in __exit__     next(self.gen)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/framework/errors.py", line 463, in raise_exception_on_not_ok_status     pywrap_tensorflow.tf_getcode(status)) tensorflow.python.framework.errors.invalidargumenterror: logits , labels must same size: logits_size=[1,2] labels_size=[1,1]      [[node: softmaxcrossentropywithlogits = softmaxcrossentropywithlogits[t=dt_float, _device="/job:localhost/replica:0/task:0/gpu:0"](reshape, reshape_1)]]      [[node: reshape_2/_7 = _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_233_reshape_2", tensor_type=dt_float, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]  during handling of above exception, exception occurred:  traceback (most recent call last):   file "tfvgg.py", line 293, in <module>     training_step(q, q % 100 == 0, q % 20 == 0)   file "tfvgg.py", line 282, in training_step     a, c = sess.run([accuracy, cross_entropy], {x: [batch_x], y: [batch_y]})   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 717, in run     run_metadata_ptr)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 915, in _run     feed_dict_string, options, run_metadata)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 965, in _do_run     target_list, options, run_metadata)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/client/session.py", line 985, in _do_call     raise type(e)(node_def, op, message) tensorflow.python.framework.errors.invalidargumenterror: logits , labels must same size: logits_size=[1,2] labels_size=[1,1]      [[node: softmaxcrossentropywithlogits = softmaxcrossentropywithlogits[t=dt_float, _device="/job:localhost/replica:0/task:0/gpu:0"](reshape, reshape_1)]]      [[node: reshape_2/_7 = _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_233_reshape_2", tensor_type=dt_float, _device="/job:localhost/replica:0/task:0/cpu:0"]()]]  caused op 'softmaxcrossentropywithlogits', defined at:   file "tfvgg.py", line 254, in <module>     cross_entropy = tf.nn.softmax_cross_entropy_with_logits(logits=fc3l, labels=y)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/ops/nn_ops.py", line 676, in softmax_cross_entropy_with_logits     precise_logits, labels, name=name)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/ops/gen_nn_ops.py", line 1744, in _softmax_cross_entropy_with_logits     features=features, labels=labels, name=name)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py", line 749, in apply_op     op_def=op_def)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 2380, in create_op     original_op=self._default_original_op, op_def=op_def)   file "/home/entelechy/tfenv/lib/python3.5/site-packages/tensorflow/python/framework/ops.py", line 1298, in __init__     self._traceback = _extract_stack()  invalidargumenterror (see above traceback): logits , labels must same size: logits_size=[1,2] labels_size=[1,1]      [[node: softmaxcrossentropywithlogits = softmaxcrossentropywithlogits[t=dt_float, _device="/job:localhost/replica:0/task:0/gpu:0"](reshape, reshape_1)]]      [[node: reshape_2/_7 = _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_233_reshape_2", tensor_type=dt_float, _device="/job:localhost/replica:0/task:0/cpu:0"]()]] 

after taking closer found issue output of 3rd fully-connected layer 2 classes, when labels binary single class. changed code in last connected layer account single class, , error solved.


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -