Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error running model_target.py #5

Open
hithisisdhara opened this issue Mar 29, 2018 · 7 comments
Open

Error running model_target.py #5

hithisisdhara opened this issue Mar 29, 2018 · 7 comments

Comments

@hithisisdhara
Copy link

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.

@sherrylilmj
Copy link

Did you solve this problem? I have the same problem also.

@hithisisdhara
Copy link
Author

Nope :(

@cbaziotis
Copy link
Owner

cbaziotis commented Apr 21, 2018

Please tell me what version of keras are you using and with what backend, in order to be able to reproduce the problem. I don't use Keras for my projects anymore and i don't remember facing such problem in the past, but i will look into it.

@sherrylilmj
Copy link

I use keras==1.2.2 with tensorflow backend.
Thanks for your reply.

@cbaziotis
Copy link
Owner

cbaziotis commented Apr 21, 2018

Unfortunately, i have updated the repo in order to work with keras 2.x. There are some breaking changes from keras 1.X to 2.x. Also, this may be a TF issue. Note though, that the model initially was implemented in keras 1.2.2 with theano backend and i never tested it with TF.

Anyway, tell me also what is your version of TF and i will try to see what causes the problem when i get the time.

@hithisisdhara
Copy link
Author

hithisisdhara commented Apr 21, 2018

Thank you so much for responding to this issue.
I have tried TensorFlow versions 1.4 upto 1.7, but the problem persisted. Thank you for letting me know about Keras version, I also used 1.2.x for Keras with TensorFlow backend.

@cbaziotis
Copy link
Owner

Hi guys, sorry for taking so long to update the repository. I just updated the codebase. It now works with the latest versions of Keras (2.2.0) and Tensorflow (1.8.0). Please pull from the master and upgrade your packages from the requirements.

Please let me know if the updated code resolves your issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants