1#cython: boundscheck=False
2#cython: wraparound=False
3#cython: infer_types=True
4import numpy as np
5cimport numpy as np
6
7from tensorflow.python.util import compat
8
9
10def AppendFloat32ArrayToTensorProto(
11    tensor_proto, np.ndarray[np.float32_t, ndim=1] nparray):
12  cdef long i, n
13  n = nparray.size
14  for i in range(n):
15    tensor_proto.float_val.append(nparray[i])
16
17
18def AppendFloat64ArrayToTensorProto(
19    tensor_proto, np.ndarray[np.float64_t, ndim=1] nparray):
20  cdef long i, n
21  n = nparray.size
22  for i in range(n):
23    tensor_proto.double_val.append(nparray[i])
24
25
26def AppendInt32ArrayToTensorProto(
27    tensor_proto, np.ndarray[np.int32_t, ndim=1] nparray):
28  cdef long i, n
29  n = nparray.size
30  for i in range(n):
31    tensor_proto.int_val.append(nparray[i])
32
33def AppendUInt32ArrayToTensorProto(
34    tensor_proto, np.ndarray[np.uint32_t, ndim=1] nparray):
35  cdef long i, n
36  n = nparray.size
37  for i in range(n):
38    tensor_proto.uint32_val.append(nparray[i])
39
40def AppendInt64ArrayToTensorProto(
41    tensor_proto, np.ndarray[np.int64_t, ndim=1] nparray):
42  cdef long i, n
43  n = nparray.size
44  for i in range(n):
45    tensor_proto.int64_val.append(nparray[i])
46
47def AppendUInt64ArrayToTensorProto(
48    tensor_proto, np.ndarray[np.uint64_t, ndim=1] nparray):
49  cdef long i, n
50  n = nparray.size
51  for i in range(n):
52    tensor_proto.uint64_val.append(nparray[i])
53
54def AppendUInt8ArrayToTensorProto(
55    tensor_proto, np.ndarray[np.uint8_t, ndim=1] nparray):
56  cdef long i, n
57  n = nparray.size
58  for i in range(n):
59    tensor_proto.int_val.append(nparray[i])
60
61
62def AppendUInt16ArrayToTensorProto(
63    tensor_proto, np.ndarray[np.uint16_t, ndim=1] nparray):
64  cdef long i, n
65  n = nparray.size
66  for i in range(n):
67    tensor_proto.int_val.append(nparray[i])
68
69
70def AppendInt16ArrayToTensorProto(
71    tensor_proto, np.ndarray[np.int16_t, ndim=1] nparray):
72  cdef long i, n
73  n = nparray.size
74  for i in range(n):
75    tensor_proto.int_val.append(nparray[i])
76
77
78def AppendInt8ArrayToTensorProto(
79    tensor_proto, np.ndarray[np.int8_t, ndim=1] nparray):
80  cdef long i, n
81  n = nparray.size
82  for i in range(n):
83    tensor_proto.int_val.append(nparray[i])
84
85
86def AppendComplex64ArrayToTensorProto(
87    tensor_proto, np.ndarray[np.complex64_t, ndim=1] nparray):
88  cdef long i, n
89  n = nparray.size
90  for i in range(n):
91    tensor_proto.scomplex_val.append(nparray[i].real)
92    tensor_proto.scomplex_val.append(nparray[i].imag)
93
94
95def AppendComplex128ArrayToTensorProto(
96    tensor_proto, np.ndarray[np.complex128_t, ndim=1] nparray):
97  cdef long i, n
98  n = nparray.size
99  for i in range(n):
100    tensor_proto.dcomplex_val.append(nparray[i].real)
101    tensor_proto.dcomplex_val.append(nparray[i].imag)
102
103
104def AppendObjectArrayToTensorProto(tensor_proto, np.ndarray nparray):
105  cdef long i, n
106  n = nparray.size
107  for i in range(n):
108    tensor_proto.string_val.append(compat.as_bytes(nparray[i]))
109
110
111def AppendBoolArrayToTensorProto(tensor_proto, nparray):
112  cdef long i, n
113  n = nparray.size
114  for i in range(n):
115    tensor_proto.bool_val.append(np.asscalar(nparray[i]))
116