tf.keras.layers.Multiply не работает с переменными - PullRequest
0 голосов
/ 25 мая 2020

Я пробую простой код:

import tensorflow as tf
v1 = tf.Variable(np.array([[1.,2.],[2.,3.]]))
v2 = tf.Variable(np.array([[1.,2.],[2.,3.]]))
v3=tf.keras.layers.Multiply()([v1,v2])

Я получаю:

RuntimeError                              Traceback (most recent call last)
<ipython-input-15-70cdbcdc638c> in <module>
      2 v1 = tf.Variable(np.array([[1.,2.],[2.,3.]]))
      3 v2 = tf.Variable(np.array([[1.,2.],[2.,3.]]))
----> 4 v3=tf.keras.layers.Multiply()([v1,v2])

~/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/engine/base_layer.py in __call__(self, *args, **kwargs)
    966           with base_layer_utils.autocast_context_manager(
    967               self._compute_dtype):
--> 968             outputs = self.call(cast_inputs, *args, **kwargs)
    969           self._handle_activity_regularization(inputs, outputs)
    970           self._set_mask_metadata(inputs, outputs, input_masks)

~/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/layers/merge.py in call(self, inputs)
    181         return y
    182     else:
--> 183       return self._merge_function(inputs)
    184 
    185   @tf_utils.shape_type_conversion

~/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/keras/layers/merge.py in _merge_function(self, inputs)
    320     output = inputs[0]
    321     for i in range(1, len(inputs)):
--> 322       output *= inputs[i]
    323     return output
    324 

~/anaconda3/envs/tensorflow/lib/python3.7/site-packages/tensorflow/python/ops/resource_variable_ops.py in __imul__(self, unused_other)
   1255 
   1256   def __imul__(self, unused_other):
-> 1257     raise RuntimeError("Variable *= value not supported. Use "
   1258                        "`var.assign(var * value)` to modify the variable or "
   1259                        "`var = var * value` to get a new Tensor object.")

RuntimeError: Variable *= value not supported. Use `var.assign(var * value)` to modify the variable or `var = var * value` to get a new Tensor object.

Что я делаю не так? пожалуйста, помогите мне разобраться в проблеме

...