I’m using convolution network for classification. My dataset is a typical 2D matrix,say, 100 samples x 10 features
. one row represents a sample(e.g. a certain person’s information ), one column represents an attribute/feature (e.g. gender, name, weight, etc.).
When using nn.BatchNorm1d
, there’s a num_features
argument, also, it says that the input of nn.BatchNorm1d
is (N, C) or (N, C, L). I guess C
here means Channel
.
Then here comes the problem,
unlike image data, there’s no natural
channel
in my dataset. So I can either treat my dataset as 100 samples withchannels=10 and num_features=1
, or, withchannels=1 and num_features=10
. I wonder which one is proper for using a BatchNorm1d? Why?
Furthermore, take one sample vector with 10 features for example, after passing a Conv1d(in_channel = 1, out_channel = 3) layer, I’ll get 3 vectors with 10 features. Then, should I treat them as Channel=3 and num_features=10?
I think this problem essentially lies in that what’s the difference between channels
and features
for input like images? RGB are usually called channels
, but I think they can also be treated as features of one pixel. I’m not sure if I’m right.