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

Version required #4

Closed
lucamocerino opened this issue Apr 6, 2020 · 8 comments
Closed

Version required #4

lucamocerino opened this issue Apr 6, 2020 · 8 comments

Comments

@lucamocerino
Copy link

Hi,
interesting work. I've some issues that I cannot actually fix. Can u post the right version of TensorFlow, Keras etc. , because some features are not compatible.

Thanks!

@jwfromm
Copy link
Owner

jwfromm commented Apr 7, 2020

This was tested with Tensorflow 2.1 and should use the built in tensorflow.keras. If there still are issues after updating please let me know specifically what they are and I'll try to get them fixed asap!

@lucamocerino
Copy link
Author

I faced this issue when tried the AlexNet example. Tf 2.1 but it seems that the model definition is not compliant with the one required since i've an assertation error when calling mod, params = relay.frontend.from_keras :
assert isinstance(model, expected_model_class)

@jwfromm
Copy link
Owner

jwfromm commented Apr 7, 2020

Make sure you're using the TVM submodule included in the repo (riptide fork at https://github.com/jwfromm/tvm/tree/riptide). I'm planning on getting the required functionality added to the main TVM branch soon.

@lucamocerino
Copy link
Author

lucamocerino commented Apr 7, 2020

Yes, i made same mistakes. Now I'm sure to have the right TVM branch, but i got this error:

`Traceback (most recent call last):

File "deploy_mod.py", line 37, in
mod, params = relay.frontend.from_keras(model, shape={'input_1': [1,32, 32, 3]}, layout='NHWC')

File "/home/anaconda3/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/relay/frontend/keras.py", line 1113, in from_keras
if o in model.outputs:

File "/home/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 757, in bool
self._disallow_bool_casting()

File "/home/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 526, in _disallow_bool_casting
self._disallow_in_graph_mode("using a tf.Tensor as a Python bool")

File "/home/anaconda3/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 515, in _disallow_in_graph_mode
" this function with @tf.function.".format(task))

tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: using a tf.Tensor as a Python bool is not allowed in Graph execution. Use Eager execution or decorate this function with @tf.function.
`

@jwfromm
Copy link
Owner

jwfromm commented Apr 7, 2020

Hmm are you sure you're using tf2.1? In tf2+ all tensors are eager by default. This error is complaining about you being in graph mode. You could try adding tf.enable_eager_execution() to the top of your script.

@lucamocerino
Copy link
Author

lucamocerino commented Apr 10, 2020

It is not related on eager execution. I re-do all the setup process. Now this is the traceback:

Traceback (most recent call last):

File "deploy_mod.py", line 34, in
mod, params = relay.frontend.from_keras(model, shape={'input_1': [1, 32, 32, 3]}, layout='NHWC')

File "/home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/relay/frontend/keras.py", lin
e 1123, in from_keras
keras_op_to_relay(inexpr, keras_layer, op_name, etab)

File "/home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/relay/frontend/keras.py", lin
e 1003, in keras_op_to_relay
outs = _convert_map[op_name](inexpr, keras_layer, etab)

File "/home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/relay/frontend/keras.py", lin
e 781, in _convert_bitserial_convolution
out = _op.nn.bitserial_conv2d(data=inexpr, **params)

File "/home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/relay/op/nn/nn.py", line 2140
, in bitserial_conv2d
out_dtype, unipolar)

File "/home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/_ffi/_ctypes/packed_func.py",
line 213, in call
raise get_last_ffi_error()
tvm._ffi.base.TVMError: Traceback (most recent call last):
[bt] (4) /home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/libtvm.so(TVMFuncCall+0x6$) [0x7f37a41df0b5]
[bt] (3) /home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/libtvm.so(std::Function$andler&lt;void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), tvm::runtime::TypedPackedFunc&lt;tvm::RelayExpr (tvm::RelayExpr, tvm::RelayExpr$ tvm::Array<tvm::PrimExpr, void>, tvm::Array<tvm::PrimExpr, void>, tvm::PrimExpr, tvm::Array<tvm::PrimExpr, void>, int, int, std::__cxx11::ba$ic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator

tvm::runtime::DataType, tvm::runtime::DataType, bool)>::AssignTypedLambda<tvm::RelayExpr ()(tvm::RelayExpr, tvm::RelayExpr, tvm::Array<tvm::PrimExpr, void>, tvm::Array<tvm::PrimExpr, void>, tvm::PrimExpr, tvm::Array<tvm::PrimExpr, void>, int, int, std::__cxx11::basic_string<char,
std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, tvm::runtime
::DataType, tvm::runtime::DataType, bool)>(tvm::RelayExpr (
)(tvm::RelayExpr, tvm::RelayExpr, tvm::Array<tvm::PrimExpr, void>, tvm::Array<tvm:
:PrimExpr, void>, tvm::PrimExpr, tvm::Array<tvm::PrimExpr, void>, int, int, std::__cxx11::basic_string<char, std::char_traits, std::allo
cator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, tvm::runtime::DataType, tvm::runtime::DataType
, bool))::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}>::M_invoke(std::Any_data const&, tvm::runtime::TVMArgs&&, tvm
::runtime::TVMRetValue*&&)+0x1de) [0x7f37a3dd83ee]
[bt] (2) /home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/libtvm.so(void tvm::runtim
e::detail::unpack_call_dispatcher<tvm::RelayExpr, 0, 13, tvm::RelayExpr ()(tvm::RelayExpr, tvm::RelayExpr, tvm::Array<tvm::PrimExpr, void>, t
vm::Array<tvm::PrimExpr, void>, tvm::PrimExpr, tvm::Array<tvm::PrimExpr, void>, int, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, tvm::runtime::DataType, tvm::run
time::DataType, bool)>::run<tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::r
untime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime:
:TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue>(tvm::RelayExpr (
const&)(tvm::RelayExpr, tvm::
RelayExpr, tvm::Array<tvm::PrimExpr, void>, tvm::Array<tvm::PrimExpr, void>, tvm::PrimExpr, tvm::Array<tvm::PrimExpr, void>, int, int, std::

cxx11::basic_string<char, std::char_traits, std::allocator >, std::cxx11::basic_string<char, std::char_traits, std::alloca
tor >, tvm::runtime::DataType, tvm::runtime::DataType, bool), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TV
MArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime:
:TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runti
me::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&)+0x110) [0x7f37a3dd7f00]
[bt] (1) /home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/libtvm.so(tvm::runtime::TV
MPODValue
::operator int() const+0x140) [0x7f37a39c8540]
[bt] (0) /home/mocerino/Desktop/riptide/pyrip/lib/python3.7/site-packages/tvm-0.7.dev0-py3.7-linux-x86_64.egg/tvm/libtvm.so(dmlc::LogMessage
Fatal::~LogMessageFatal()+0x43) [0x7f37a39bd6b3]
File "/home/mocerino/Desktop/riptide/tvm/include/tvm/runtime/packed_func.h", line 433
TVMError: Check failed: type_code
== kDLInt (2 vs. 0) : expected int but get float

@jwfromm
Copy link
Owner

jwfromm commented Apr 11, 2020

Thanks for pointing this out @lucamocerino. You're absolutely right that some bugs started showing up, maybe due to a change in tensorflow behavior that I missed. I just pushed changes to the Keras frontend that fix the bugs you encountered.

@jwfromm
Copy link
Owner

jwfromm commented Apr 13, 2020

I'm going to close this issue for now. Please let me know if you encounter other errors.

@jwfromm jwfromm closed this as completed Apr 13, 2020
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

2 participants