【发布时间】:2021-09-16 18:57:16
【问题描述】:
所以我一直在研究年龄估计模型。
我有 2 个轴,x_train 和 y_train。
x_train 有图片,y_train 有标签(年龄为整数)
在x_train上,单个图像数组的形状为(200, 200, 3),而整个x_train的形状为(10000, 200, 200, 3)。
y_train的形状是(10000,)
================================================ ==
目前y_train 看起来像这样:
[24 47 35 ... 75 3 33]
和x_train 这样(当我用x_train[0] 打印第一张图像时:
[[[0.40392157 0.29411766 0.2784314 ]
[0.4117647 0.3019608 0.28627452]
[0.41568628 0.30588236 0.29411766]
...
[0.8745098 0.5882353 0.6156863 ]
[0.88235295 0.59607846 0.62352943]
[0.8862745 0.6 0.627451 ]]
[[0.41568628 0.30588236 0.2901961 ]
[0.41960785 0.30980393 0.29411766]
[0.41960785 0.30980393 0.29803923]
...
[0.88235295 0.59607846 0.62352943]
[0.8862745 0.6 0.627451 ]
[0.8901961 0.6039216 0.6313726 ]]
[[0.42745098 0.31764707 0.3019608 ]
[0.42352942 0.3137255 0.3019608 ]
[0.41568628 0.30588236 0.29411766]
...
[0.8862745 0.6 0.627451 ]
[0.8901961 0.6039216 0.6313726 ]
[0.89411765 0.60784316 0.63529414]]
...
[[0.92941177 0.80784315 0.7254902 ]
[0.92941177 0.80784315 0.7254902 ]
[0.9254902 0.8039216 0.72156864]
...
[0.9098039 0.7058824 0.72156864]
[0.9098039 0.7058824 0.72156864]
[0.9098039 0.7058824 0.72156864]]
[[0.93333334 0.8117647 0.7294118 ]
[0.93333334 0.8117647 0.7294118 ]
[0.92941177 0.80784315 0.7254902 ]
...
[0.90588236 0.70980394 0.72156864]
[0.90588236 0.70980394 0.72156864]
[0.90588236 0.70980394 0.72156864]]]
这是我生成 x_train 和 y_train 的实际代码:
head = '/content/crop_part1/' #data dir
l = os.listdir(head)
x_train = [] # images
y_train = [] # age
for i in l[:10000]:
img= np.array(Image.open(f'{head}{i}'))
img= np.resize(img,(img_height, img_width,3))
img = img.astype('float32')
img /= 255
x_train.append(img)
y_train.append(int(i.split('_')[0]))
当我拟合我的模型时,我收到此错误:
Data cardinality is ambiguous:
x sizes: 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 2...
y sizes: 10000
Make sure all arrays contain the same number of samples.
我假设y_train 的形状应该类似于x_train。以前我使用的是很好的 tensorflow 现成的输入管道特性,比如填充。但是我该怎么做呢?
我们是否必须用零填充y_train,例如:
[16, 0, 0]
[4, 0, 0]
[12, 0, 0]
还是我们必须重塑它?如果是那怎么办?
【问题讨论】:
标签: python numpy tensorflow deep-learning