File tree 7 files changed +654
-15
lines changed
7 files changed +654
-15
lines changed Original file line number Diff line number Diff line change @@ -6,9 +6,11 @@ find_package(Threads REQUIRED)
6
6
7
7
set (CMAKE_CXX_STANDARD 17)
8
8
9
+
9
10
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
10
11
#set(CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
11
12
12
13
add_executable (example main.cpp)
13
14
target_include_directories (example PRIVATE ../../include $ENV{HOME} /libtensorflow2/include )
15
+ target_link_libraries (example "${TENSORFLOW_LIB} " )
14
16
target_link_libraries (example "${TENSORFLOW_LIB} " Threads::Threads)
Original file line number Diff line number Diff line change
1
+ cmake_minimum_required (VERSION 3.10)
2
+ project (example)
3
+
4
+ find_library (TENSORFLOW_LIB tensorflow HINT $ENV{HOME} /libtensorflow2/lib)
5
+ find_package (Threads REQUIRED)
6
+
7
+ #set(CMAKE_CXX_STANDARD 20)
8
+ set (CMAKE_CXX_STANDARD 17)
9
+
10
+
11
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address" )
12
+ set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -lasan" )
13
+
14
+ add_executable (example main.cpp)
15
+ target_include_directories (example PRIVATE ../../include $ENV{HOME} /libtensorflow2/include )
16
+ target_link_libraries (example "${TENSORFLOW_LIB} " )
Original file line number Diff line number Diff line change
1
+ #include < cmath>
2
+ #include < vector>
3
+ #include < cassert>
4
+
5
+ #include " cppflow/cppflow.h"
6
+
7
+ template <typename T>
8
+ void test (const std::initializer_list<T>& input) {
9
+ std::vector<T> values = input;
10
+ cppflow::tensor t (input);
11
+ auto span_result = t.get_data <T>();
12
+
13
+ assert (span_result.size () == values.size ());
14
+ for (size_t i = 0 ; i < span_result.size (); i++) {
15
+ assert (std::abs (values[i]/span_result[i]-1 .0f ) < 1e-6 );
16
+ }
17
+ }
18
+
19
+ int main () {
20
+ test ({10 , 20 , 30 });
21
+ test ({10.0 , 20.1 , 30.3 });
22
+ return 0 ;
23
+ }
Original file line number Diff line number Diff line change 6
6
#define CPPFLOW2_CONTEXT_H
7
7
8
8
#include < memory>
9
+ #include < stdexcept>
9
10
#include < utility>
10
11
11
12
#include < tensorflow/c/c_api.h>
Original file line number Diff line number Diff line change 13
13
14
14
#include " context.h"
15
15
#include " tensor.h"
16
+ #include " defer.h"
16
17
17
18
namespace cppflow {
18
19
@@ -84,6 +85,12 @@ namespace cppflow {
84
85
85
86
std::vector<TF_Output> inp_ops (inputs.size ());
86
87
std::vector<TF_Tensor*> inp_val (inputs.size ());
88
+
89
+ defer d ([&inp_val]{
90
+ for (auto * tf_tensor : inp_val) {
91
+ TF_DeleteTensor (tf_tensor);
92
+ }
93
+ });
87
94
for (int i=0 ; i<inputs.size (); i++) {
88
95
89
96
// Operations
You can’t perform that action at this time.
0 commit comments