在为caffe网络准备数据的脚本中,以下代码段将图像(表示图像的numpy数组)转换为Datum对象。
datum = caffe_pb2.Datum( channels=3, width=224, height=224, label=label, data=np.rollaxis(img, 2).tostring())
如果网络是无监督的,是否可以同样创建对象,但不填写标签参数,如下所示?
datum = caffe_pb2.Datum( channels=3, width=224, height=224, data=np.rollaxis(img, 2).tostring())
回答:
Datum
的label
是optional
的:
optional int32 label = 5;
这意味着你不需要提供它。
附注:Datum
是一种主要用于"Data"
输入层的数据结构,严格来说它并不属于训练网络的一部分。
Caffe使用N-D张量Blobs
来存储网络的数据和参数。