24 #ifndef TVM_TOPI_NN_FLATTEN_H_
25 #define TVM_TOPI_NN_FLATTEN_H_
51 auto ishape = x->shape;
53 for (
size_t i = 1; i < ishape.size(); ++i) {
54 dim = dim * ishape[i];
57 Array<PrimExpr> oshape({ishape[0], dim});
59 std::vector<PrimExpr> extra_shape;
60 for (
size_t i = 1; i < ishape.size(); ++i) {
61 extra_shape.push_back(ishape[i]);
63 std::reverse(extra_shape.begin(), extra_shape.end());
69 std::vector<PrimExpr> index;
70 for (
auto s : extra_shape) {
75 std::reverse(index.begin(), index.end());
Reference to PrimExprNode.
Definition: expr.h:129
Tensor structure representing a possible input, or intermediate computation result.
Definition: tensor.h:100
a named variable in TIR
Definition: var.h:78
Utility functions for handling constants in TVM expressions.
Tensor expression language DSL.
Definition: extracted_task.h:33
Tensor compute(Array< PrimExpr > shape, FCompute fcompute, std::string name="tensor", std::string tag="", Map< String, ffi::Any > attrs={})
Construct a new tensor by computing over shape, using the computation rule: result_tensor[axis] = fco...
Tensor flatten(const Tensor &x, std::string name="tensor", std::string tag=kInjective)
Flattens the input tensor into a 2-D tensor by collapsing higher dimensions. This requires the input ...
Definition: flatten.h:50
constexpr auto kInjective
Definition: tags.h:33
Performance counters for profiling via the PAPI library.
Definition: analyzer.h:37
PrimExpr indexdiv(PrimExpr a, PrimExpr b, Span span=Span())
compute floor(a / b) where a and b are non-negative.
PrimExpr indexmod(PrimExpr a, PrimExpr b, Span span=Span())
compute the remainder floor(a / b) where a and b are non-negative.
Operation node can generate one or multiple Tensors.