finalfusion / finalfusion-tensorflow-ops

Tensorflow Op for finalfusion embeddings
https://finalfusion.github.io/
Other
2 stars 0 forks source link

Add finalfusion tensorflow op. #1

Closed sebpuetz closed 4 years ago

sebpuetz commented 4 years ago

This PR is still missing documentation and some polishing, but it builds and can be loaded with both pip installed and compiled tensorflow 1.14 and 2.0.

Also, some python unit tests are missing.

sebpuetz commented 4 years ago

@danieldk would you prefer a smaller PR only adding the FFLookup Resource? Although it would remove some context such as: https://github.com/finalfusion/finalfusion-tensorflow/pull/1#discussion_r321692168

sebpuetz commented 4 years ago

If the OSX build goes through, we should be good to go on this one?

sebpuetz commented 4 years ago

I'm trying to get this to work with the full implementation, but so far some symbols get lost along the way. When I try to load the shared library, some symbols from libtensorflow_framework are undefined. So I guess something's not working properly here?

NotFoundError: ./finalfusion-tf/libfinalfusion_tf_op.so: undefined symbol: _ZTIN10tensorflow8OpKernelE
$ nm -g /home/seb/.pyenv/versions/3.6.7/lib/python3.6/site-packages/tensorflow/libtensorflow_framework.so.1 | grep "8OpKernelE"
[...]
0000000001c81030 V _ZTIN10tensorflow8OpKernelE
0000000001722c10 V _ZTSN10tensorflow8OpKernelE
0000000001c810c0 V _ZTVN10tensorflow8OpKernelE
$ ldd finalfusion-tf/libfinalfusion_tf_op.so
    linux-vdso.so.1 (0x00007fff3b834000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9c791c9000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9c78faa000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9c78c21000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9c78883000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9c7866b000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9c7827a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f9c79755000)