Hello,
I am trying to recreate the results of subtask B, 2 way classification of the tweets, and I have taken the following steps:
change the TASK = 'BD' in model_target.py
When I try running model_target.py, I am through until the model being trained, and then I get an error
TypeError: Using a tf.Tensor
as a Python bool
is not allowed. Use if t is not None:
instead of if t:
to test if a tensor is defined, and use TensorFlow ops such as tf.cond to execute subgraphs conditioned on the value of a tensor.
I have tried installing an older version of Tensorflow, but still get the same result.
Here is the full error:---------
TypeError Traceback (most recent call last)
in ()
101 attention="context",
102 clipnorm=.1,
--> 103 classes=len(classes))
104
105 plot(nn_model, show_layer_names=True, show_shapes=True, to_file="model_task4_sub{}.png".format(TASK))
/models/neural/keras_models.py in target_RNN(wv, tweet_max_length, aspect_max_length, classes, **kwargs)
175 h_aspects = shared_RNN(aspects_emb)
176 h_aspects = Dropout(drop_target_rnn)(h_aspects)
--> 177 h_aspects = MeanOverTime()(h_aspects)
178 h_aspects = RepeatVector(tweet_max_length)(h_aspects)
179
~/anaconda2/envs/py35/lib/python3.5/site-packages/keras/engine/topology.py in call(self, x, mask)
570 if inbound_layers:
571 # This will call layer.build() if necessary.
--> 572 self.add_inbound_node(inbound_layers, node_indices, tensor_indices)
573 # Outputs were already computed when calling self.add_inbound_node.
574 outputs = self.inbound_nodes[-1].output_tensors
~/anaconda2/envs/py35/lib/python3.5/site-packages/keras/engine/topology.py in add_inbound_node(self, inbound_layers, node_indices, tensor_indices)
633 # creating the node automatically updates self.inbound_nodes
634 # as well as outbound_nodes on inbound layers.
--> 635 Node.create_node(self, inbound_layers, node_indices, tensor_indices)
636
637 def get_output_shape_for(self, input_shape):
~/anaconda2/envs/py35/lib/python3.5/site-packages/keras/engine/topology.py in create_node(cls, outbound_layer, inbound_layers, node_indices, tensor_indices)
164
165 if len(input_tensors) == 1:
--> 166 output_tensors = to_list(outbound_layer.call(input_tensors[0], mask=input_masks[0]))
167 output_masks = to_list(outbound_layer.compute_mask(input_tensors[0], input_masks[0]))
168 # TODO: try to auto-infer shape
~/anaconda2/envs/py35/lib/python3.5/site-packages/kutilities/layers.py in call(self, x, mask)
21 if mask is not None:
22 mask = K.cast(mask, 'float32')
---> 23 if not K.any(mask):
24 return K.mean(x, axis=1)
25 else:
~/anaconda2/envs/py35/lib/python3.5/site-packages/tensorflow/python/framework/ops.py in bool(self)
612 TypeError
.
613 """
--> 614 raise TypeError("Using a tf.Tensor
as a Python bool
is not allowed. "
615 "Use if t is not None:
instead of if t:
to test if a "
616 "tensor is defined, and use TensorFlow ops such as "
TypeError: Using a tf.Tensor
as a Python bool
is not allowed. Use if t is not None:
instead of if t:
to test if a tensor is defined, and use TensorFlow ops such as tf.cond to execute subgraphs conditioned on the value of a tensor.