Image Recognition for Retail Use Case: Data Preparation & Building Convolutional Neural Network (CNN) Workflow

We used neural networks for the image recognition task. Neural networks are massively parallel adaptive processing structures consisting of one or more layers, each layer one or more neurons. Three types of layers exist: Input (receiving data from its environment, providing processed data to other layers), hidden (receiving and providing processed data from and to other layers) and output (receiving processed data from other layers, providing information to the environment) layers. Weighted connections exist between the neurons of each layer, changing them is the key to its adaptability, which happens based on the difference between the predicted and the expected results.

This is a companion discussion topic for the original entry at

Hello, I have a question on this Workflow. Once I download it and try to execute it on my Knime Platform, in the Keras Network Learner Node (Training Convolutional Neural Network (CNN) Metanode) I get the following error message:

“Selected input columns do not provide enough elements (25) to populate all neurons (196608) of network input … . Try adding some columns to the selection.”

How can I fix this? I have no other columns since I am using all the different image labels as input, and I haven’t changed anything from the original Workflow posted on this webpage.

Thank you in advance!

Hi @nikesamma -

This is likely because you have made some changes to the configuration to the Input Data tab of the Keras Network Learner node. I get this same error if I choose Conversion: From Number, for example. Make sure that your Conversion is set to From Image, and you are including the Img Calc field.

Hi I have been trying to run this workflow but the following error appears, I did install all that was necesary for the workflow :

ERROR DL Python Network Creator 0:285:88 Execute failed: Tensor is unhashable if Tensor equality is enabled. Instead, use tensor.experimental_ref() as the key.
Traceback (most recent call last):
File “”, line 5, in
File “C:\Program Files\KNIME\plugins\org.knime.dl.python_4.1.0.v201909231406\py\”, line 96, in get_layer_data_specs_as_data_frames
extractor = DLPythonNetworkSpecToDataFrameConverter(network.spec)
File “C:\Program Files\KNIME\plugins\org.knime.dl.keras_4.1.0.v201911110939\py\”, line 150, in spec
self._spec = self._extract_model_spec()
File “C:\Program Files\KNIME\plugins\org.knime.dl.keras_4.1.0.v201911110939\py\”, line 87, in _extract_model_spec
return DLKerasTensorFlowNetworkSpecExtractor(self._model).extract_spec()
File “C:\Program Files\KNIME\plugins\org.knime.dl.keras_4.1.0.v201911110939\py\”, line 95, in extract_spec
self._extract_node_input_tensor_specs(layer, node_idx)
File “C:\Program Files\KNIME\plugins\org.knime.dl.keras_4.1.0.v201911110939\py\”, line 149, in _extract_node_input_tensor_specs
if input_tensor in self._model_inputs and input_tensor not in self._visited_inputs:
File “C:\Users\user\Anaconda3\lib\site-packages\tensorflow_core\python\framework\”, line 705, in hash
raise TypeError("Tensor is unhashable if Tensor equality is enabled. "
TypeError: Tensor is unhashable if Tensor equality is enabled. Instead, use tensor.experimental_ref() as the key.

See dedicated forum post: Error trying to run a KNIME example.

1 Like