InfiniOps
Operator Library for Accelerators
Loading...
Searching...
No Matches
internal_slow_conv2d_backward.h
Go to the documentation of this file.
1#ifndef INFINI_OPS_BASE_INTERNAL_SLOW_CONV2D_BACKWARD_H_
2#define INFINI_OPS_BASE_INTERNAL_SLOW_CONV2D_BACKWARD_H_
3
4#include <vector>
5
6#include "operator.h"
7
8namespace infini::ops::internal {
9
10class SlowConv2dBackward : public Operator<SlowConv2dBackward> {
11 public:
12 SlowConv2dBackward(const Tensor grad_output, const Tensor input,
13 const Tensor weight,
14 const std::vector<int64_t> kernel_size,
15 const std::vector<int64_t> stride,
16 const std::vector<int64_t> padding, Tensor grad_input,
17 Tensor grad_weight, Tensor grad_bias)
18 : grad_output_shape_{grad_output.shape()},
19 grad_output_strides_{grad_output.strides()},
20 grad_output_type_{grad_output.dtype()},
21 input_shape_{input.shape()},
22 input_strides_{input.strides()},
23 input_type_{input.dtype()},
24 weight_shape_{weight.shape()},
25 weight_strides_{weight.strides()},
26 weight_type_{weight.dtype()},
27 grad_input_shape_{grad_input.shape()},
28 grad_input_strides_{grad_input.strides()},
29 grad_input_type_{grad_input.dtype()},
30 grad_weight_shape_{grad_weight.shape()},
31 grad_weight_strides_{grad_weight.strides()},
32 grad_weight_type_{grad_weight.dtype()},
33 grad_bias_shape_{grad_bias.shape()},
34 grad_bias_strides_{grad_bias.strides()},
35 grad_bias_type_{grad_bias.dtype()},
36 kernel_size_{kernel_size},
37 stride_{stride},
38 padding_{padding},
39 device_index_{grad_input.device().index()} {}
40
41 virtual void operator()(const Tensor grad_output, const Tensor input,
42 const Tensor weight,
43 const std::vector<int64_t> kernel_size,
44 const std::vector<int64_t> stride,
45 const std::vector<int64_t> padding, Tensor grad_input,
46 Tensor grad_weight, Tensor grad_bias) const = 0;
47
48 protected:
49 Tensor::Shape grad_output_shape_;
50
51 Tensor::Strides grad_output_strides_;
52
54
55 Tensor::Shape input_shape_;
56
57 Tensor::Strides input_strides_;
58
59 DataType input_type_;
60
61 Tensor::Shape weight_shape_;
62
63 Tensor::Strides weight_strides_;
64
65 DataType weight_type_;
66
67 Tensor::Shape grad_input_shape_;
68
69 Tensor::Strides grad_input_strides_;
70
72
73 Tensor::Shape grad_weight_shape_;
74
75 Tensor::Strides grad_weight_strides_;
76
78
79 Tensor::Shape grad_bias_shape_;
80
81 Tensor::Strides grad_bias_strides_;
82
84
85 std::vector<int64_t> kernel_size_{};
86
87 std::vector<int64_t> stride_{};
88
89 std::vector<int64_t> padding_{};
90
92};
93
94} // namespace infini::ops::internal
95
96#endif
Definition generated/include/operator.h:282
Definition internal_slow_conv2d_backward.h:10
DataType grad_bias_type_
Definition internal_slow_conv2d_backward.h:83
DataType grad_input_type_
Definition internal_slow_conv2d_backward.h:71
Tensor::Strides weight_strides_
Definition internal_slow_conv2d_backward.h:63
Tensor::Strides input_strides_
Definition internal_slow_conv2d_backward.h:57
DataType input_type_
Definition internal_slow_conv2d_backward.h:59
Tensor::Shape grad_input_shape_
Definition internal_slow_conv2d_backward.h:67
Tensor::Shape grad_weight_shape_
Definition internal_slow_conv2d_backward.h:73
int device_index_
Definition internal_slow_conv2d_backward.h:91
Tensor::Shape grad_bias_shape_
Definition internal_slow_conv2d_backward.h:79
Tensor::Strides grad_output_strides_
Definition internal_slow_conv2d_backward.h:51
DataType grad_output_type_
Definition internal_slow_conv2d_backward.h:53
virtual void operator()(const Tensor grad_output, const Tensor input, const Tensor weight, const std::vector< int64_t > kernel_size, const std::vector< int64_t > stride, const std::vector< int64_t > padding, Tensor grad_input, Tensor grad_weight, Tensor grad_bias) const =0
std::vector< int64_t > stride_
Definition internal_slow_conv2d_backward.h:87
std::vector< int64_t > padding_
Definition internal_slow_conv2d_backward.h:89
Tensor::Shape weight_shape_
Definition internal_slow_conv2d_backward.h:61
Tensor::Strides grad_bias_strides_
Definition internal_slow_conv2d_backward.h:81
SlowConv2dBackward(const Tensor grad_output, const Tensor input, const Tensor weight, const std::vector< int64_t > kernel_size, const std::vector< int64_t > stride, const std::vector< int64_t > padding, Tensor grad_input, Tensor grad_weight, Tensor grad_bias)
Definition internal_slow_conv2d_backward.h:12
Tensor::Shape grad_output_shape_
Definition internal_slow_conv2d_backward.h:49
Tensor::Strides grad_weight_strides_
Definition internal_slow_conv2d_backward.h:75
DataType weight_type_
Definition internal_slow_conv2d_backward.h:65
Tensor::Shape input_shape_
Definition internal_slow_conv2d_backward.h:55
DataType grad_weight_type_
Definition internal_slow_conv2d_backward.h:77
std::vector< int64_t > kernel_size_
Definition internal_slow_conv2d_backward.h:85
Tensor::Strides grad_input_strides_
Definition internal_slow_conv2d_backward.h:69
Definition internal_add_relu.h:6
infini::rt::TensorView Tensor
Definition tensor.h:8