-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
Hello,
I am trying to retrain the classifier. I have started by randomizing the weights by including the following lines in the load_weights function:
for key1 in weights_biases.keys():
for key2 in weights_biases[key1].keys():
weights_biases[key1][key2] = np.random.normal(loc=0.0, scale=1.0, size=np.size(weights_biases[key1][key2]))
I then try to compile and fit the network:
model = branched_network()
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(
np.asarray(inputs), np.asarray(targets), epochs=1, verbose=1)
Inputs is a list of numpy arrays for cochleagrams, and targets is an array of integers corresponding to word outcomes.
I get the following error when running the fit.
Tensor("branched_network/Cast:0", shape=(None, 1, 65536), dtype=float64)
Tensor("branched_network/Cast_1:0", shape=(None, 1, 65536), dtype=float64)
Tensor("branched_network/Cast_2:0", shape=(None, 256, 256, 1), dtype=float64)
TypeError Traceback (most recent call last)
<ipython-input-205-6366830757a9> in <module>
1 tf.keras.backend.clear_session()
----> 2 model.call(inputs[0],'speech')
<ipython-input-203-b351b5e9b5da> in call(self, x, type)
73 for layer in self.commun :
74 print(tf.dtypes.cast(x, tf.float64))
---> 75 x = layer(tf.dtypes.cast(x, tf.float32))
76 if type == "speech":
77 for layer in self.speech: x = layer(tf.dtypes.cast(x, tf.float32))
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py in __call__(self, *args, **kwargs)
983
984 with ops.enable_auto_cast_variables(self._compute_dtype_object):
--> 985 outputs = call_fn(inputs, *args, **kwargs)
986
987 if self._activity_regularizer:
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py in __call__(self, *args, **kwds)
778 else:
779 compiler = "nonXla"
--> 780 result = self._call(*args, **kwds)
781
782 new_tracing_count = self._get_tracing_count()
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py in _call(self, *args, **kwds)
821 # This is the first call of __call__, so we have to initialize.
822 initializers = []
--> 823 self._initialize(args, kwds, add_initializers_to=initializers)
824 finally:
825 # At this point we know that the initialization is complete (or less
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py in _initialize(self, args, kwds, add_initializers_to)
694 self._graph_deleter = FunctionDeleter(self._lifted_initializer_graph)
695 self._concrete_stateful_fn = (
--> 696 self._stateful_fn._get_concrete_function_internal_garbage_collected( # pylint: disable=protected-access
697 *args, **kwds))
698
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/function.py in _get_concrete_function_internal_garbage_collected(self, *args, **kwargs)
2853 args, kwargs = None, None
2854 with self._lock:
-> 2855 graph_function, _, _ = self._maybe_define_function(args, kwargs)
2856 return graph_function
2857
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/function.py in _maybe_define_function(self, args, kwargs)
3211
3212 self._function_cache.missed.add(call_context_key)
-> 3213 graph_function = self._create_graph_function(args, kwargs)
3214 self._function_cache.primary[cache_key] = graph_function
3215 return graph_function, args, kwargs
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/function.py in _create_graph_function(self, args, kwargs, override_flat_arg_shapes)
3063 arg_names = base_arg_names + missing_arg_names
3064 graph_function = ConcreteFunction(
-> 3065 func_graph_module.func_graph_from_py_func(
3066 self._name,
3067 self._python_function,
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py in func_graph_from_py_func(name, python_func, args, kwargs, signature, func_graph, autograph, autograph_options, add_control_dependencies, arg_names, op_return_value, collections, capture_by_value, override_flat_arg_shapes)
984 _, original_func = tf_decorator.unwrap(python_func)
985
--> 986 func_outputs = python_func(*func_args, **func_kwargs)
987
988 # invariant: `func_outputs` contains only Tensors, CompositeTensors,
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/def_function.py in wrapped_fn(*args, **kwds)
598 # __wrapped__ allows AutoGraph to swap in a converted function. We give
599 # the function a weak reference to itself to avoid a reference cycle.
--> 600 return weak_wrapped_fn().__wrapped__(*args, **kwds)
601 weak_wrapped_fn = weakref.ref(wrapped_fn)
602
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/function.py in bound_method_wrapper(*args, **kwargs)
3733 # However, the replacer is still responsible for attaching self properly.
3734 # TODO(mdan): Is it possible to do it here instead?
-> 3735 return wrapped_fn(*args, **kwargs)
3736 weak_bound_method_wrapper = weakref.ref(bound_method_wrapper)
3737
~/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
971 except Exception as e: # pylint:disable=broad-except
972 if hasattr(e, "ag_error_metadata"):
--> 973 raise e.ag_error_metadata.to_exception(e)
974 else:
975 raise
TypeError: in user code:
<ipython-input-6-cee54ce53363>:15 call *
x = tf.nn.conv2d( previous_h, self.w,
/Users/smeisler/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201 wrapper **
return target(*args, **kwargs)
/Users/smeisler/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/ops/nn_ops.py:2158 conv2d_v2
return conv2d(input, # pylint: disable=redefined-builtin
/Users/smeisler/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py:201 wrapper
return target(*args, **kwargs)
/Users/smeisler/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/ops/nn_ops.py:2264 conv2d
return gen_nn_ops.conv2d(
/Users/smeisler/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/ops/gen_nn_ops.py:975 conv2d
_, _, _op, _outputs = _op_def_library._apply_op_helper(
/Users/smeisler/opt/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/op_def_library.py:503 _apply_op_helper
raise TypeError(
TypeError: Input 'filter' of 'Conv2D' Op has type float64 that does not match type float32 of argument 'input'.
I have tried casting the tensor to different data types before passing them in to the next layer, but I continue receiving the same errors. Do you know how I may fix this?
Best,
Steven
Metadata
Metadata
Assignees
Labels
No labels