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