InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
slow_conv_transpose3d.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_BASE_SLOW_CONV_TRANSPOSE3D_H_
2#define INFINI_OPS_BASE_SLOW_CONV_TRANSPOSE3D_H_
3
4#include <optional>
5#include <vector>
6
7#include "operator.h"
8
9namespace infini::ops {
10
11class SlowConvTranspose3d : public Operator<SlowConvTranspose3d> {
12 public:
13 SlowConvTranspose3d(const Tensor input, const Tensor weight,
14 const std::optional<Tensor> bias,
15 const std::vector<int64_t> kernel_size,
16 const std::vector<int64_t> stride,
17 const std::vector<int64_t> padding,
18 const std::vector<int64_t> output_padding,
19 const std::vector<int64_t> dilation, Tensor out)
20 : input_shape_{input.shape()},
21 input_strides_{input.strides()},
22 input_type_{input.dtype()},
23 weight_shape_{weight.shape()},
24 weight_strides_{weight.strides()},
25 weight_type_{weight.dtype()},
26 out_shape_{out.shape()},
27 out_strides_{out.strides()},
28 out_type_{out.dtype()},
29 has_bias_{bias.has_value()},
30 bias_shape_{bias ? Tensor::Shape{bias->shape()} : Tensor::Shape{}},
31 bias_strides_{bias ? Tensor::Strides{bias->strides()}
32 : Tensor::Strides{}},
33 bias_type_{bias ? bias->dtype() : DataType::kFloat32},
34 kernel_size_{kernel_size},
35 stride_{stride},
36 padding_{padding},
37 output_padding_{output_padding},
38 dilation_{dilation},
39 device_index_{out.device().index()} {}
40
41 virtual void operator()(const Tensor input, const Tensor weight,
42 const std::optional<Tensor> bias,
43 const std::vector<int64_t> kernel_size,
44 const std::vector<int64_t> stride,
45 const std::vector<int64_t> padding,
46 const std::vector<int64_t> output_padding,
47 const std::vector<int64_t> dilation,
48 Tensor out) const = 0;
49
50 protected:
51 Tensor::Shape input_shape_;
52
53 Tensor::Strides input_strides_;
54
55 DataType input_type_;
56
57 Tensor::Shape weight_shape_;
58
59 Tensor::Strides weight_strides_;
60
61 DataType weight_type_;
62
63 Tensor::Shape out_shape_;
64
65 Tensor::Strides out_strides_;
66
67 DataType out_type_;
68
69 bool has_bias_{false};
70
71 Tensor::Shape bias_shape_;
72
73 Tensor::Strides bias_strides_;
74
75 DataType bias_type_{DataType::kFloat32};
76
77 std::vector<int64_t> kernel_size_{};
78
79 std::vector<int64_t> stride_{};
80
81 std::vector<int64_t> padding_{};
82
83 std::vector<int64_t> output_padding_{};
84
85 std::vector<int64_t> dilation_{};
86
88};
89
90} // namespace infini::ops
91
92#endif
Definition generated/include/operator.h:282
Definition slow_conv_transpose3d.h:11
Tensor::Strides input_strides_
Definition slow_conv_transpose3d.h:53
Tensor::Shape out_shape_
Definition slow_conv_transpose3d.h:63
std::vector< int64_t > padding_
Definition slow_conv_transpose3d.h:81
std::vector< int64_t > kernel_size_
Definition slow_conv_transpose3d.h:77
Tensor::Shape bias_shape_
Definition slow_conv_transpose3d.h:71
Tensor::Shape weight_shape_
Definition slow_conv_transpose3d.h:57
Tensor::Strides out_strides_
Definition slow_conv_transpose3d.h:65
DataType out_type_
Definition slow_conv_transpose3d.h:67
SlowConvTranspose3d(const Tensor input, const Tensor weight, const std::optional< Tensor > bias, const std::vector< int64_t > kernel_size, const std::vector< int64_t > stride, const std::vector< int64_t > padding, const std::vector< int64_t > output_padding, const std::vector< int64_t > dilation, Tensor out)
Definition slow_conv_transpose3d.h:13
DataType input_type_
Definition slow_conv_transpose3d.h:55
DataType weight_type_
Definition slow_conv_transpose3d.h:61
bool has_bias_
Definition slow_conv_transpose3d.h:69
DataType bias_type_
Definition slow_conv_transpose3d.h:75
virtual void operator()(const Tensor input, const Tensor weight, const std::optional< Tensor > bias, const std::vector< int64_t > kernel_size, const std::vector< int64_t > stride, const std::vector< int64_t > padding, const std::vector< int64_t > output_padding, const std::vector< int64_t > dilation, Tensor out) const =0
std::vector< int64_t > stride_
Definition slow_conv_transpose3d.h:79
Tensor::Strides bias_strides_
Definition slow_conv_transpose3d.h:73
int device_index_
Definition slow_conv_transpose3d.h:87
std::vector< int64_t > output_padding_
Definition slow_conv_transpose3d.h:83
std::vector< int64_t > dilation_
Definition slow_conv_transpose3d.h:85
Tensor::Shape input_shape_
Definition slow_conv_transpose3d.h:51
Tensor::Strides weight_strides_
Definition slow_conv_transpose3d.h:59
Definition generated/include/operator.h:28
infini::rt::TensorView Tensor
Definition tensor.h:8