serizba / cppflow

Run TensorFlow models in C++ without installation and without Bazel
https://serizba.github.io/cppflow/
MIT License
774 stars 177 forks source link

Proper deallocation of strings in the constructor #216

Open serizba opened 1 year ago

serizba commented 1 year ago

Currently there isn't support for TF_TString tensors. Besides, they require a proper dealloaction with TF_TString_Dealloc.

This has been mentioned in #196 and #200. A solution was proposed in #128 but it didn't work.

I proposed a solution in #200, but I would like some feedback before merging in. This PR includes that code.

I only included a specialized constructor for vectors of strings. Constructor with single strings and with initializer lists will call this constructor, so no need to specialize them.

I also removed the old code (before TF 2.4) way of using strings.

@ljn917 what do you think about this constructor? should we merge?

ljn917 commented 1 year ago

@serizba Sorry for my late response. The code looks good to me. I also tested it on Linux with libtensorflow 2.5, and it worked. cuda-memcheck gave no leak.

We probably need to tell people loudly that pre-2.4 versions (e.g. 2.3) do not work anymore.

serizba commented 1 year ago

I will do that then.