结构:
struct output {
uint32_t rank; // dimensions in the tensor
uint32_t max_sizes[MAX_DIMENSIONS]; // max num elements in each dimension
uint32_t elementsize; // size of each element
int32_t zero_offset; // 0 for float / integer values
float stepsize; // 0 for float/integer values
};
typedef struct output my_output;
声明数组和初始化:
static my_output outputs_for_1024a[] = {
OUTPUT_4D(1,299,299,3,4),
};
里面的宏长这样:
#define OUTPUT_4D(B,H,W,D,ES) \
{ .rank = 4, .max_sizes = {B,H,W,D}, .elementsize = ES, \
.zero_offset = 0, .stepsize = 0.0f, }
我人肉解析这个宏,是不是应该这样的:
static my_output outputs_for_1024a[] = {
{.rank=4,.max_sizes={1,299,299,3},.elementsize = 4, .zero_offset = 0, .setpsize = 0.0f,} },
};
编译能通过没问题
最后那俩逗号不是多的吗?
求解释指导。