针对不同类的图像引用的深度学习数据集设计?

时间:2018-01-04 10:09:58

标签: image tensorflow deep-learning classification

我想使用初始模型训练图像分类器。 现在,我有一种名为鸡饭的菜肴。 假设我想制作米饭和鸡肉类。 那么我可以将输出接地真实概率设计为[0.5,0.5,0,0,0 ...]吗? 换句话说,如果目标图像包含两个类的内容,我该怎么做才能使其合理?

有人试过这个吗?

我试图单独训练图像,谷歌也这样做了。

keycnt  = 0
imagcnt = 0
TestNumber_byclass = np.zeros([keycount],np.int32)
for key in TestKeys:
    TestNumber_byclass[keycnt] = len(json_data_test[key])
    for imagedata in json_data_test[key]: 
        imgdata = tf_resize_images(imagdir + imagedata + '.jpg')
        imgdata = np.array(imgdata, dtype = np.uint8)
        # make image center at 0 in the range of (-1,1]
        #imgdata = (imgdata - mean - 128) / 128
        h5f = h5py.File(h5filedir_test + str(imagcnt) + ".h5", "w")
        h5f.create_dataset('image', data=imgdata)
        h5f.create_dataset('label', data=keycnt)
        h5f.create_dataset('name' , data=key)
        h5f.close()
        imagcnt = imagcnt + 1
    keycnt =keycnt +1
    message = '\r[%d/%d] progress...' % (keycnt,keycount)
    sys.stdout.write(message)
    sys.stdout.flush()

非常感谢。

1 个答案:

答案 0 :(得分:1)

您尝试做的是多类分类,其中将预测N类中的M个。如果对象出现在图像中并将其设置为0(如果情况并非如此),通常可以通过将标志设置为1来完成。

真正重要的信息是最后一个激活函数需要是一个sigmoid而不是softmax。这样你就可以将每个类与其他类的置信度分离,并且总和将在0和N之间。