3#if _MSC_VER >= 1900 && defined(_M_X64)
5#include "ComputationalGraph.h"
6#include "BackendMultiScaleRoIAlign.h"
7#include "DefinitionsAI.h"
14 class FL_EXPORT CBackendMultiScaleRoIAlign;
17 class FL_EXPORT CComputationalGraphMultiScaleRoIAlign :
public CComputationalGraph<T>
21 CComputationalGraphMultiScaleRoIAlign();
24 CComputationalGraphMultiScaleRoIAlign(
const CComputationalGraphMultiScaleRoIAlign<T>& cg);
27 CComputationalGraphMultiScaleRoIAlign(
const std::vector<
const CComputationalBase<T>*>& vctFeatures,
const CComputationalBase<T>& cgBoxes, int64_t i64OutputWidth, int64_t i64OutputHeight, int64_t i64SamplingRatio, int64_t i64ImageWidth, int64_t i64ImageHeight, int64_t i64CanonicalScale = 224, int64_t i64CanonicalLevel = 4);
28 CComputationalGraphMultiScaleRoIAlign(
const std::initializer_list<
const CComputationalBase<T>*>& ilFeatures,
const CComputationalBase<T>& cgBoxes, int64_t i64OutputWidth, int64_t i64OutputHeight, int64_t i64SamplingRatio, int64_t i64ImageWidth, int64_t i64ImageHeight, int64_t i64CanonicalScale = 224, int64_t i64CanonicalLevel = 4);
30 virtual ~CComputationalGraphMultiScaleRoIAlign();
32 virtual CTensor<T>& Forward()
override;
33 virtual CTensor<T>* Backward()
override;
34 virtual CComputationalBase<T>* Clone()
const override;
36 virtual const std::vector<int64_t>& GetEstimatedShape(
bool bRecursive =
true)
const override;
37 virtual const CResult PrintNodeParamInfo()
const override;
39 virtual const CResult GetBinaryData(Base::CFLData& fldBinary,
bool bSuperClass =
false, int32_t i32Version = -1,
bool bDumpMode =
false)
const override;
40 virtual const CResult GetBinaryData(Base::CFLData* pFldBinary,
bool bSuperClass =
false, int32_t i32Version = -1,
bool bDumpMode =
false)
const override;
42 virtual const CResult SetBinaryData(
const Base::CFLData& fldBinary, int64_t* pI64Offset =
nullptr)
override;
43 virtual const CResult SetBinaryData(
const Base::CFLData* pFldBinary, int64_t* pI64Offset =
nullptr)
override;
45 virtual int64_t GetRequiredDedicatedMemory(
bool bTraining =
false,
bool bRecursively =
true, int64_t i64BatchSize = 1)
const override;
46 virtual int64_t GetRequiredTemporaryMemory(
bool bTraining =
false ,
bool bRecursively =
true, int64_t i64BatchSize = 1, int64_t i64MemoryIndex = 0)
const override;
48 const CResult SetOutputWidth(int64_t i64OutputWidth);
49 int64_t GetOutputWidth()
const;
50 const CResult SetOutputHeight(int64_t i64OutputHeight);
51 int64_t GetOutputHeight()
const;
52 const CResult SetSamplingRatio(int64_t i64SamplingRatio);
53 int64_t GetSamplingRatio()
const;
54 const CResult SetImageWidth(int64_t i64ImageWidth);
55 int64_t GetImageWidth()
const;
56 const CResult SetImageHeight(int64_t i64ImageHeight);
57 int64_t GetImageHeight()
const;
58 const CResult SetCanonicalScale(int64_t i64CanonicalScale);
59 int64_t GetCanonicalScale()
const;
60 const CResult SetCanonicalLevel(int64_t i64CanonicalLevel);
61 int64_t GetCanonicalLevel()
const;
63 DeclareGetClassType();
64 SupportToDuplicateObjectWithoutCreateNewObject(CComputationalGraphMultiScaleRoIAlign, *
this);
67 const CResult CheckShape()
const;
70 int64_t m_i64OutputWidth;
71 int64_t m_i64OutputHeight;
72 int64_t m_i64SamplingRatio;
73 int64_t m_i64ImageWidth;
74 int64_t m_i64ImageHeight;
75 int64_t m_i64CanonicalScale;
76 int64_t m_i64CanonicalLevel;
78 CBackendMultiScaleRoIAlign<T> m_backendMultiScaleRoIAlign;
80 DeclareGetSignletonObject(CComputationalGraphMultiScaleRoIAlign);
83 #define CCGFMultiScaleRoIAlign(...) (*(new CComputationalGraphMultiScaleRoIAlign<float>(__VA_ARGS__)))
84 #define CCGDMultiScaleRoIAlign(...) (*(new CComputationalGraphMultiScaleRoIAlign<double>(__VA_ARGS__)))
86 #define CCGTMultiScaleRoIAlign(T, ...) (*(new CComputationalGraphMultiScaleRoIAlign<T>(__VA_ARGS__)))