Skip to content

Error in the 'Conv2D' op in IndianPinesCNN class #7

Description

@sayantanghosh

Hello, I just noticed a strange error while running the Decoder Spatial CNN notebook before getting into the code. I am running it with python3.5 and tensorflow 1.4. Just thought of bringing it to your notice. Specifically, the IndianPinesCNN.inference(), execution of line 70:

z = tf.nn.conv2d(x_image, weights, strides=[1, 1, 1, 1], padding='VALID')

raised the error:

InvalidArgumentError: Negative dimension size caused by subtracting 3 from 1 for 'conv_1/Conv2D' (op: 'Conv2D') with input shapes: [1,1,1,220], [3,3,220,500]

Here is the output when I run the decoder():


InvalidArgumentError Traceback (most recent call last)
/usr/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py in _call_cpp_shape_fn_impl(op, input_tensors_needed, input_tensors_as_shapes_needed, require_shape_fn)
653 graph_def_version, node_def_str, input_shapes, input_tensors,
--> 654 input_tensors_as_shapes, status)
655 except errors.InvalidArgumentError as err:

/usr/lib64/python3.5/contextlib.py in exit(self, type, value, traceback)
65 try:
---> 66 next(self.gen)
67 except StopIteration:

/usr/lib/python3.5/site-packages/tensorflow/python/framework/errors_impl.py in raise_exception_on_not_ok_status()
465 compat.as_text(pywrap_tensorflow.TF_Message(status)),
--> 466 pywrap_tensorflow.TF_GetCode(status))
467 finally:

InvalidArgumentError: Negative dimension size caused by subtracting 3 from 1 for 'conv_1/Conv2D' (op: 'Conv2D') with input shapes: [1,1,1,220], [3,3,220,500].

During handling of the above exception, another exception occurred:

ValueError Traceback (most recent call last)
in ()
----> 1 predicted_image,predicted_results = decoder()

in decoder()
11 conv2,
12 fc1,
---> 13 fc2)
14
15 eval_correct = IndianPinesCNN.evaluation(logits, labels_placeholder)

/home/Hyperspectral-master/IndianPinesCNN.py in inference(images, conv1_channels, conv2_channels, fc1_units, fc2_units)
68 # Flattening the 3D image into a 1D array
69 x_image = tf.reshape(images, [-1,IMAGE_SIZE,IMAGE_SIZE,CHANNELS])
---> 70 z = tf.nn.conv2d(x_image, weights, strides=[1, 1, 1, 1], padding='VALID')
71 print (z)
72 h_conv1 = tf.nn.relu(z+biases, name=scope.name)

/usr/lib/python3.5/site-packages/tensorflow/python/ops/gen_nn_ops.py in conv2d(input, filter, strides, padding, use_cudnn_on_gpu, data_format, name)
395 strides=strides, padding=padding,
396 use_cudnn_on_gpu=use_cudnn_on_gpu,
--> 397 data_format=data_format, name=name)
398 return result
399

/usr/lib/python3.5/site-packages/tensorflow/python/framework/op_def_library.py in apply_op(self, op_type_name, name, **keywords)
765 op = g.create_op(op_type_name, inputs, output_types, name=scope,
766 input_types=input_types, attrs=attr_protos,
--> 767 op_def=op_def)
768 if output_structure:
769 outputs = op.outputs

/usr/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in create_op(self, op_type, inputs, dtypes, input_types, name, attrs, op_def, compute_shapes, compute_device)
2630 original_op=self._default_original_op, op_def=op_def)
2631 if compute_shapes:
-> 2632 set_shapes_for_outputs(ret)
2633 self._add_op(ret)
2634 self._record_op_seen_by_control_dependencies(ret)

/usr/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in set_shapes_for_outputs(op)
1909 shape_func = _call_cpp_shape_fn_and_require_op
1910
-> 1911 shapes = shape_func(op)
1912 if shapes is None:
1913 raise RuntimeError(

/usr/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in call_with_requiring(op)
1859
1860 def call_with_requiring(op):
-> 1861 return call_cpp_shape_fn(op, require_shape_fn=True)
1862
1863 _call_cpp_shape_fn_and_require_op = call_with_requiring

/usr/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py in call_cpp_shape_fn(op, require_shape_fn)
593 res = _call_cpp_shape_fn_impl(op, input_tensors_needed,
594 input_tensors_as_shapes_needed,
--> 595 require_shape_fn)
596 if not isinstance(res, dict):
597 # Handles the case where _call_cpp_shape_fn_impl calls unknown_shape(op).

/usr/lib/python3.5/site-packages/tensorflow/python/framework/common_shapes.py in _call_cpp_shape_fn_impl(op, input_tensors_needed, input_tensors_as_shapes_needed, require_shape_fn)
657 missing_shape_fn = True
658 else:
--> 659 raise ValueError(err.message)
660
661 if missing_shape_fn:

ValueError: Negative dimension size caused by subtracting 3 from 1 for 'conv_1/Conv2D' (op: 'Conv2D') with input shapes: [1,1,1,220], [3,3,220,500].

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions