From f41959ccb2d9d4c722fe8fc3351401d53bcf4900 Mon Sep 17 00:00:00 2001 From: Manjunath Kudlur Date: Fri, 6 Nov 2015 16:27:58 -0800 Subject: TensorFlow: Initial commit of TensorFlow library. TensorFlow is an open source software library for numerical computation using data flow graphs. Base CL: 107276108 --- tensorflow/core/kernels/transpose_op_functor.h | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tensorflow/core/kernels/transpose_op_functor.h (limited to 'tensorflow/core/kernels/transpose_op_functor.h') diff --git a/tensorflow/core/kernels/transpose_op_functor.h b/tensorflow/core/kernels/transpose_op_functor.h new file mode 100644 index 0000000000..8cbd1cbb29 --- /dev/null +++ b/tensorflow/core/kernels/transpose_op_functor.h @@ -0,0 +1,28 @@ +#ifndef THIRD_PARTY_TENSORFLOW_CORE_KERNELS_TRANSPOSE_OP_FUNCTOR_H_ +#define THIRD_PARTY_TENSORFLOW_CORE_KERNELS_TRANSPOSE_OP_FUNCTOR_H_ + +#include "third_party/eigen3/unsupported/Eigen/CXX11/Tensor" +#include "tensorflow/core/framework/tensor_types.h" + +namespace tensorflow { +namespace functor { + +template +void Transpose(const Device& d, typename TTypes::Tensor out, + typename TTypes::ConstTensor in, const int* perm) { + // perm[] is a permutation of 0, 1, ..., NDIMS-1. perm[] is on CPU. + Eigen::array p; + for (int i = 0; i < NDIMS; ++i) p[i] = perm[i]; + out.device(d) = in.shuffle(p); +} + +template +struct TransposeFunctor { + void operator()(const Device& d, typename TTypes::Tensor out, + typename TTypes::ConstTensor in, const int* perm); +}; + +} // namespace functor +} // namespace tensorflow + +#endif // THIRD_PARTY_TENSORFLOW_CORE_KERNELS_TRANSPOSE_OP_FUNCTOR_H_ -- cgit v1.2.3