nuric / deeplogic

DeepLogic: Towards End-to-End Differentiable Logical Reasoning
https://arxiv.org/abs/1805.07433
BSD 3-Clause "New" or "Revised" License
23 stars 7 forks source link

What's the version of the Keras and Tensorflow been used in the paper? #1

Closed 14H034160212 closed 4 years ago

14H034160212 commented 4 years ago

Hi, great project! Here is a question about what's the version of the Keras and Tensorflow been used in the paper? Many thanks!

14H034160212 commented 4 years ago

Cause I run the python3 train.py imasm curr_imasm64 -p -ts 0 1 2 -its 2 and got the AttributeError: module 'keras.layers' has no attribute 'regularizers'. I guess it is probably from the version of keras. regularizers

nuric commented 4 years ago

Hello, thanks! The Keras version used was 2.2.2 and Tensorflow version was 1.10.0. The experiments in the paper were run in August 2018.

Yes, I think the APIs has undergone major changes since then. It might make sense to bring code base up to date to benefit from bugfixes that Keras and Tensorflow might have introduced.

nuric commented 4 years ago

The APIs have seemed to moved around, luckily not too much. The main issue was around ZeroGRU which is a custom layer I've written to skip over empty input timesteps (since Masking wasn't really happy with higher dimensions back then, I'm guessing that might have improved a lot since then) and the NestedTimeDist class which is designed to run a RNN over the last two dimensions of a given tensor.

I've polished those issues out, along with some eager execution issues in the models. As it stands I did an pip3 install --upgrade keras tensorflow and managed to run the experiments after the fixes. I'll push to a new branch and close this issue. I can't guarantee that it is migrated fully correctly but hopefully it will allow you to run it again. Looking at the code for IMA and it's variants I would recommend re-implementing with modern APIs in mind. Hope that helps.

14H034160212 commented 4 years ago

Many thanks! I can run the program by using the Tensorflow 1.10.0 and Keras 2.2.2.