lucid
lucid copied to clipboard
issue in render own model
I'm trying to follow this link [https://github.com/tensorflow/lucid/wiki/Importing-Models-into-Lucid]
And I have error in feature visualization of a layer with lucid
render.render_vis(model, "Conv2D_3:0")
What is the proper parameter in my case?
I checked my node name with this code
for node in model.graph_def.node:
print(node.name)
And results are below.
Const
Variable
Variable_1
Variable_2
Variable_3
Variable_4
Variable_5
Variable_6
Variable_7
Variable_8
Variable_9
Variable_10
Variable_11
Conv2D_3
add_6
Relu_5
MaxPool_3
Conv2D_4
add_7
Relu_6
MaxPool_4
Conv2D_5
add_8
Relu_7
MaxPool_5
Reshape_1/shape
Reshape_1
MatMul_3
add_9
Relu_8
MatMul_4
add_10
Relu_9
MatMul_5
add_11
Softmax
lucid_metadata_json
Could you help me how can I solve this problem? :)
What error do you get when you call render?
@colah The error message is as follows:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-36-5878bc10721e> in <module>()
3 #_ = render.render_vis(model, obj)
4
----> 5 _ = render.render_vis(model,"Softmax:0")
6 frames
/usr/local/lib/python3.6/dist-packages/lucid/optvis/render.py in render_vis(model, objective_f, param_f, optimizer, transforms, thresholds, print_objectives, verbose, relu_gradient_override, use_fixed_seed)
93
94 T = make_vis_T(model, objective_f, param_f, optimizer, transforms,
---> 95 relu_gradient_override)
96 print_objective_func = make_print_objective_func(print_objectives, T)
97 loss, vis_op, t_image = T("loss"), T("vis_op"), T("input")
/usr/local/lib/python3.6/dist-packages/lucid/optvis/render.py in make_vis_T(model, objective_f, param_f, optimizer, transforms, relu_gradient_override)
175 with gradient_override_map({'Relu': redirected_relu_grad,
176 'Relu6': redirected_relu6_grad}):
--> 177 T = import_model(model, transform_f(t_image), t_image)
178 else:
179 T = import_model(model, transform_f(t_image), t_image)
/usr/local/lib/python3.6/dist-packages/lucid/optvis/render.py in import_model(model, t_image, t_image_raw, scope, input_map)
255 t_image_raw = t_image
256
--> 257 T_ = model.import_graph(t_image, scope=scope, forget_xy_shape=True, input_map=input_map)
258
259 def T(layer):
/usr/local/lib/python3.6/dist-packages/lucid/modelzoo/vision_base.py in import_graph(self, t_input, scope, forget_xy_shape, input_map)
199 final_input_map.update(input_map)
200 tf.import_graph_def(
--> 201 self.graph_def, final_input_map, name=scope)
202 self.post_import(scope)
203
/tensorflow-1.15.2/python3.6/tensorflow_core/python/util/deprecation.py in new_func(*args, **kwargs)
505 'in a future version' if date is None else ('after %s' % date),
506 instructions)
--> 507 return func(*args, **kwargs)
508
509 doc = _add_deprecated_arg_notice_to_docstring(
/tensorflow-1.15.2/python3.6/tensorflow_core/python/framework/importer.py in import_graph_def(graph_def, input_map, return_elements, name, op_dict, producer_op_list)
403 name=name,
404 op_dict=op_dict,
--> 405 producer_op_list=producer_op_list)
406
407
/tensorflow-1.15.2/python3.6/tensorflow_core/python/framework/importer.py in _import_graph_def_internal(graph_def, input_map, return_elements, validate_colocation_constraints, name, op_dict, producer_op_list)
533 raise ValueError(
534 'Attempted to map inputs that were not found in graph_def: [%s]' %
--> 535 ', '.join(missing_unused_input_keys))
536
537 if return_elements is None:
**ValueError: Attempted to map inputs that were not found in graph_def: [input:0]**
Attempted to map inputs that were not found in graph_def: [input:0]
When you exported your model, you had to declare what the name of the input node to your model was. It appears that you may have made an error when doing so, and that the name you gave doens't exist in the model.
@colah , Thanks to your answer, I solved the problem. However, I have one more problem in rendering my model.
Here is my error message
---------------------------------------------------------------------------
InvalidArgumentError Traceback (most recent call last)
/tensorflow-1.15.2/python3.6/tensorflow_core/python/framework/importer.py in _import_graph_def_internal(graph_def, input_map, return_elements, validate_colocation_constraints, name, op_dict, producer_op_list)
500 results = c_api.TF_GraphImportGraphDefWithResults(
--> 501 graph._c_graph, serialized, options) # pylint: disable=protected-access
502 results = c_api_util.ScopedTFImportGraphDefResults(results)
InvalidArgumentError: Negative dimension size caused by subtracting 2 from 1 for 'import/max_pooling2d_1/MaxPool' (op: 'MaxPool') with input shapes: [1,32,?,1].
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
7 frames
/tensorflow-1.15.2/python3.6/tensorflow_core/python/framework/importer.py in _import_graph_def_internal(graph_def, input_map, return_elements, validate_colocation_constraints, name, op_dict, producer_op_list)
503 except errors.InvalidArgumentError as e:
504 # Convert to ValueError for backwards compatibility.
--> 505 raise ValueError(str(e))
506
507 # Create _DefinedFunctions for any imported functions.
ValueError: Negative dimension size caused by subtracting 2 from 1 for 'import/max_pooling2d_1/MaxPool' (op: 'MaxPool') with input shapes: [1,32,?,1].
The link below is the colab notebook where the problem occurred. https://colab.research.google.com/drive/1UPtYvjM_qurK1SwkfNa-4cekb07Nz93-?usp=sharing
And also, I attached another colab notebook about building own model, so please refer to it if necessary. https://colab.research.google.com/drive/1CSRftnEDQiyXIlMwWrfWNgHQcdvUPCtH?usp=sharing
How can I solve this part?
When you run feature visualization, you optimize an image of size set by the argument param_f
. Some models are incompatible with certain input sizes. Try doing something like:
render.render_vis(model, "conv2d_2/convolution:3",
param_f=lambda: param.image(MODEL_INPUT_WIDTH))
@colah , Thanks to your answer, I solved the problem. However, I have one more problem in rendering my model.
Here is my error message
--------------------------------------------------------------------------- InvalidArgumentError Traceback (most recent call last) /tensorflow-1.15.2/python3.6/tensorflow_core/python/framework/importer.py in _import_graph_def_internal(graph_def, input_map, return_elements, validate_colocation_constraints, name, op_dict, producer_op_list) 500 results = c_api.TF_GraphImportGraphDefWithResults( --> 501 graph._c_graph, serialized, options) # pylint: disable=protected-access 502 results = c_api_util.ScopedTFImportGraphDefResults(results) InvalidArgumentError: Negative dimension size caused by subtracting 2 from 1 for 'import/max_pooling2d_1/MaxPool' (op: 'MaxPool') with input shapes: [1,32,?,1]. During handling of the above exception, another exception occurred: ValueError Traceback (most recent call last) 7 frames /tensorflow-1.15.2/python3.6/tensorflow_core/python/framework/importer.py in _import_graph_def_internal(graph_def, input_map, return_elements, validate_colocation_constraints, name, op_dict, producer_op_list) 503 except errors.InvalidArgumentError as e: 504 # Convert to ValueError for backwards compatibility. --> 505 raise ValueError(str(e)) 506 507 # Create _DefinedFunctions for any imported functions. ValueError: Negative dimension size caused by subtracting 2 from 1 for 'import/max_pooling2d_1/MaxPool' (op: 'MaxPool') with input shapes: [1,32,?,1].
The link below is the colab notebook where the problem occurred. https://colab.research.google.com/drive/1UPtYvjM_qurK1SwkfNa-4cekb07Nz93-?usp=sharing
And also, I attached another colab notebook about building own model, so please refer to it if necessary. https://colab.research.google.com/drive/1CSRftnEDQiyXIlMwWrfWNgHQcdvUPCtH?usp=sharing
How can I solve this part?
hello, have you solved this problem?
When you run feature visualization, you optimize an image of size set by the argument
param_f
. Some models are incompatible with certain input sizes. Try doing something like:render.render_vis(model, "conv2d_2/convolution:3", param_f=lambda: param.image(MODEL_INPUT_WIDTH))
hello, I try this, but it doesn't work.
param_f = lambda: param.image(128) _ = render.render_vis(model, "73/BiasAdd:2", param_f)