[Mostly understood] The absence of spoons (0.11.11)

(Reference here)

PL: Do not try to view the component Reshape_5, that is impossible
PL: Instead, only try to realise the truth…

J: What truth?

PL: There is no Reshape_5.

On a previous load of this model a missing input was flagged as an error. Code was displayed and model zoomed out to show whole network (some hidden behind console and code panes) for screenshot. But the layout was messed out by the zoom, so I did ctrl-F5. Now I know what the component was, but things are not quite the same now… Reshape_5 is no longer in the notebook code and the previously flagged error does not appear, but…

Now read on…

I have attached the model.json as originally loaded and the resaved version 9Feb21_Documents_IT_Python_Programming_Perceptilabs_TrainingAndDemos.zip (6.0 KB)

The key thing to note is that this model was not created with 0.11.11.

Questions below image

In model.json we find [NB I can now see the graphics coordinates 1st spotted in the HTML here]

"1613138773006": {
			"layerId": "1613138773006",
			"copyId": null,
			"copyContainerElement": null,
			"layerName": "Reshape_5",
			"layerType": "Other",
			"layerSettings": {
				"Shape": [
					224,
					224,
					3
				],
				"Permutation": [
					0,
					1,
					2
				]
			},
			"layerSettingsTabName": "Settings",
			"layerCode": null,
			"layerCodeError": {
				"Message": "Traceback (most recent call last):\n  File \"perceptilabs\\lwcore\\strategies\\tf1x.py\", line 50, in perceptilabs.lwcore.strategies.tf1x.Tf1xInnerStrategy.run\n  File \"<rendered-code: 1613138773006 [ProcessReshape]>\", line 5, in __call__\n\nTypeError: Missing input connection 'input'\n",
				"Row": 5
			},
			"layerNone": false,
			"layerMeta": {
				"isInvisible": false,
				"isLock": false,
				"isSelected": false,
				"position": {
					"top": -185,
					"left": -746
				},
				"tutorialId": "",
				"OutputDim": "",
				"InputDim": "[]",
				"layerContainerName": "",
				"layerBgColor": "",
				"containerDiff": {
					"top": 0,
					"left": 0
				}
			},
			"chartData": {},
			"checkpoint": [
				null,
				"A:/My Documents/IT/Programming/Python/Perceptilabs/Training and Demos//9Feb21_Documents_IT_Python_Programming_Perceptilabs_TrainingAndDemos"
			],
			"endPoints": [],
			"componentName": "ProcessReshape",
			"connectionOut": [],
			"connectionIn": [],
			"connectionArrow": [],
			"visited": true,
			"inputs": {
				"16131387730060": {
					"name": "input",
					"reference_var_id": null,
					"reference_layer_id": null,
					"isDefault": true
				}
			},
			"outputs": {
				"16131387730060": {
					"name": "output",
					"reference_var": "output"
				}
			},
			"forward_connections": [],
			"backward_connections": [],
			"previewVariable": "output",
			"previewVariableList": [],
			"isTrained": false,
			"chartDataIsLoading": 4,
			"initialSettings": {
				"Shape": [
					28,
					28,
					1
				],
				"Permutation": [
					0,
					1,
					2
				]
			}
		},

It turns out there is a reshape_5 in a very strange place in the html… and notice its coordinates :wink:

<div data-v-72c7150c="" data-v-11e7f0b2="" tabindex="0" openlayercontainer="function () { [native code] }" id="" layer-id="1613138773006" class="net-element js-clickout el-type-Other" style="z-index: 1; transform: scale(0.75); transform-origin: left top; top: -185px; left: -746px;"><!----><!----><div data-v-72c7150c="" class="net-element_code-error"><i data-v-72c7150c="" class="icon icon-code-error"></i></div><!----><div data-v-72c7150c="" class="net-element_btn"><div draggable="false" data-component="ProcessReshape" data-layer="Reshape" data-type="Other" id="tutorial_process-reshape" class="btn btn--layersbar net-element-process" data-v-72c7150c=""><i class="icon icon-processing-group"></i><div data-v-46bc2690="" class="editable-field layer-type network-view"><span data-v-46bc2690="" class="editable-field_title">Reshape_5</span><div data-v-46bc2690="" class="editable-field_input-wrap"><input data-v-46bc2690="" type="text" class="editable-field_input" style="display: none;"></div></div><!----></div></div><div data-v-fc41e0fe="" data-v-72c7150c="" class="settings-layer"><div data-v-fc41e0fe="" class="network-component-footer-wrapper no-preview"><div data-v-3f2cf376="" data-v-fc41e0fe="" class="input-wrapper"><div data-v-3f2cf376="" class="input-container"><span data-v-3f2cf376="" class="input-name">input</span><!----><div data-v-3f2cf376="" data-input-circle-dot-id="16131387730060" data-input-layer-id="1613138773006" class="circle-dot"></div><div data-v-3f2cf376="" data-input-dot-id="16131387730060" data-input-layer-id="1613138773006" class="input-dot"></div><!----></div></div><div data-v-30b54b55="" data-v-fc41e0fe=""><div data-v-30b54b55="" data-output-id="16131387730060" class="output-container"><span data-v-30b54b55="" class="output-text">output</span><div data-v-30b54b55="" data-output-circle-dot-id="16131387730060" data-output-layer-id="1613138773006" class="circle-dot"><div data-v-30b54b55="" class="icon icon-left-arrow-dot-line"></div></div><div data-v-30b54b55="" data-output-dot-id="16131387730060" data-output-layer-id="1613138773006" class="output-dot"></div><!----><!----></div></div></div><div data-v-fc41e0fe="" class="chart-spinner-wrapper"><div data-v-b30c56b8="" data-v-fc41e0fe="" class="chart-spinner-box"><div data-v-b30c56b8="" class="chart-spinner"></div></div></div><!----></div></div>

Questions:

  • Why does the text search box seem to indicate 2 hits? [Looks like I partially answered that - but: root cause?]
  • When I opened this model earlier, there was an error - missing input - and clicking on the error info on the console brought up the code to let me identify the source (that is a nice improvement!) but then - this component doesn’t seem to exist. Since I’ve now found an inaccessible component why isn’t it creating an error this time.
  • Is this sort of model weirdness possibly responsible for other “missing input” type errors, when everything seems ok? (I have no evidence for it, but it seems like a reasonable question.)

I wish there were no spoon. In fact, I’m getting rather down on cutlery in general.

UPDATE I restored the old model.json and restarted the server etc. and here is what it looked like…

Well, it turns out that Reshape_5 really is “on the diagram”, but - as indicated by the html and model.json - off-screen top left.

How it got there is a bit of a concern since there’s no obvious reason I would have put anything in the top left… and it’s hard to see how I could have put anything in a place that can’t be reached.

In similar circumstances, @robertl shared a tip: Ctrl-A to select all (including off-screen components) then drag the selection around to bring everything onto the canvas.

PS Was there a spoon, or did I bend my mind in the end? You decide :wink: