FLImaging 6.5.16.1
ComputationalGraphAugmentationForInstanceSegmentation.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "Tensor.h"
6#include "BackendLabel.h"
7#include "ComputationalGraphAugmentationBase.h"
8
9namespace FLImaging
10{
11 namespace AI
12 {
13
14 class CAugmentationParameters;
15 template<typename T>
16 class CInternalAugmentationForInstanceSegmentation;
17
18 template <typename T>
19 class FL_EXPORT CComputationalGraphAugmentationForInstanceSegmentation : public CComputationalGraphAugmentationBase<T>
20 {
21 private:
22 CComputationalGraphAugmentationForInstanceSegmentation();
23
24 protected:
25 CComputationalGraphAugmentationForInstanceSegmentation(const CComputationalGraphAugmentationForInstanceSegmentation<T>& cg);
26
27 public:
28 CComputationalGraphAugmentationForInstanceSegmentation(const CComputationalBase<T>& cbOperand, const CAugmentationParameters& apParams);
29 CComputationalGraphAugmentationForInstanceSegmentation(const CComputationalBase<T>& cbOperand, const CAugmentationParameters* pApParams);
30 virtual ~CComputationalGraphAugmentationForInstanceSegmentation();
31
32 virtual CComputationalBase<T>* Clone() const override;
33 virtual CTensor<T>& Forward() override;
34
35 DeclareGetClassType();
36 SupportToDuplicateObjectWithoutCreateNewObject(CComputationalGraphAugmentationForInstanceSegmentation, *this);
37
38 protected:
39 public:
40 DeclareGetSignletonObject(CComputationalGraphAugmentationForInstanceSegmentation);
41 private:
42 template <typename T> friend class CInternalAugmentationForInstanceSegmentation;
43 };
44
45 #define CCGFAugmentationIS(...) (*(new CComputationalGraphAugmentationForInstanceSegmentation<float>(__VA_ARGS__)))
46 #define CCGDAugmentationIS(...) (*(new CComputationalGraphAugmentationForInstanceSegmentation<double>(__VA_ARGS__)))
47
48 #define CCGTAugmentationIS(T, ...) (*(new CComputationalGraphAugmentationForInstanceSegmentation<T>(__VA_ARGS__)))
49 }
50}
51
52#endif