-
Notifications
You must be signed in to change notification settings - Fork 179
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
C++ configuration #4
Comments
I have tested with gcc version 7.4.0 |
That must be the list initialization in Tensor::get_data(), https://github.com/serizba/cppflow/blob/master/src/Tensor.cpp#L146. I had to replace,
with
@serizba I'd call this change a step back caused by VS but tell me if you'd a like pull request. And thanks for the great work! |
@barisdemiray Thanks for locating it! I think it would be nice to change it to add more support. So yes! |
support. See issue serizba#4.
Done, thanks. |
It complains about "target_link_libraries (example -ltensorflow)" not being a valid configuration. The tensorflow api files are supposed to be under cppflow? |
No, if you open the project properties, you will notice under Linker->Input->Additional Dependencies that cmake has added "-ltensorflow" as the GCC option. If you replace it with "tensorflow.lib" it will work as long as it's been configured to work. I'm sure cmake can do it properly but I haven't looked into it myself. |
Thanks. Another question tho, I would like to use a MaskRCNN network, which was trained in Python. Do I have to define all the different layers when loading the model, or is it enough with just loading the input and output layer? |
Have a look at the wiki page. You create the model, you define the input and output tensors (visible layers only), you feed data, you run and then you get the results. |
The ASan report is as follows: AddressSanitizer:DEADLYSIGNAL ================================================================= ==74==ERROR: AddressSanitizer: SEGV on unknown address 0x6030bf3b722e (pc 0x7fc277c6ae10 bp 0x7ffe22b2c9a0 sp 0x7ffe22b2c158 T0) ==74==The signal is caused by a READ memory access. #0 0x7fc277c6ae10 /build/glibc-eX1tMB/glibc-2.31/string/../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:365 #1 0x49d947 in __asan_memcpy (/home/docker/kiravision/test/clang-memtest+0x49d947) serizba#2 0x50e00a in TF_TString_ResizeUninitialized(TF_TString*, unsigned long) /opt/tensorflow/include/tensorflow/core/platform/ctstring_internal.h:278:7 serizba#3 0x50ba34 in TF_TString_Copy(TF_TString*, char const*, unsigned long) /opt/tensorflow/include/tensorflow/core/platform/ctstring_internal.h:389:17 serizba#4 0x50bbac in Model::restore(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/docker/kiravision/cppflow/src/Model.cpp:107:5 serizba#5 0x4e98e2 in KiraVision::LearnedModel::LearnedModel(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/docker/kiravision/src/LearnedModel.cpp:12:13 serizba#6 0x4e28ed in KiraVision::TableDetector::TableDetector(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, KiraVision::LogLevel const&) /home/docker/kiravision/src/TableDetector.cpp:13:24 serizba#7 0x4d058a in main /home/docker/kiravision/test/memtest.cpp:16:31 serizba#8 0x7fc277bd30b2 in __libc_start_main /build/glibc-eX1tMB/glibc-2.31/csu/../csu/libc-start.c:308:16 serizba#9 0x425ccd in _start (/home/docker/kiravision/test/clang-memtest+0x425ccd) AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: SEGV /build/glibc-eX1tMB/glibc-2.31/string/../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:365 ==74==ABORTING The problem was incorrect initalization of a `TF_TString`. The existing code initialized it as `new TF_Tstring` (which is not really any kind of initalization, just memory allocation). `TF_TString`'s have to be initialized with `TF_TString_Initialize` before they an be used. The fact that the offending code is using a `unique_ptr` to ensure deletion of the `TF_TString` makes it all a little clunky.
Hi!
I was wondering if you can specify which version of C++ you are running, as I am having difficulties running the wrapper (complains about converting "Error C2440 'return': cannot convert from 'T *' to 'std::vector<uint8_t,std::allocator<_Ty>>'"
The text was updated successfully, but these errors were encountered: