FLImaging 6.5.16.1
BackendConcatenate.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "BackendBase.h"
6#include "Tensor.h"
7#include <vector>
8
9namespace FLImaging
10{
11 namespace AI
12 {
13 template <typename T>
14 class FL_EXPORT CComputationalBase;
15
16 template <typename T>
17 class FL_EXPORT CTensor;
18
19 template <typename T>
20 class FL_EXPORT CBackendConcatenate : public CBackendBase<T>
21 {
22 public:
23 CBackendConcatenate();
24 CBackendConcatenate(const CBackendConcatenate<T>& bl);
25 virtual ~CBackendConcatenate();
26
27
28 virtual const CResult Concatenate(const std::initializer_list<CTensor<T>>& vctTarget, CTensor<T>* pTsrResult, int64_t i64Axis);
29 virtual const CResult Concatenate(const std::vector<CTensor<T>>& vctTarget, CTensor<T>* pTsrResult, int64_t i64Axis);
30 virtual const CResult Concatenate(const std::initializer_list<CTensor<T>*>& ilTarget, CTensor<T>* pTsrResult, int64_t i64Axis);
31 virtual const CResult Concatenate(const std::vector<CTensor<T>*>& vctTarget, CTensor<T>* pTsrResult, int64_t i64Axis);
32
33 virtual const CResult ConcatenateBackward(const CTensor<T>* pTsrDy, const std::vector<bool> vctActivationFlag, std::vector<CComputationalBase<T>*>& vctCB, int64_t i64Axis);
34
35 DeclareGetClassType();
36 SupportToDuplicateObjectWithoutCreateNewObject(CBackendConcatenate<T>, *this);
37 };
38 }
39}
40
41#endif