Python 如何快速将jpg数据集转换为CNN的.pkl?

Python 如何快速将jpg数据集转换为CNN的.pkl?,python,image,neural-network,pickle,conv-neural-network,Python,Image,Neural Network,Pickle,Conv Neural Network,我很难找到这种转变的资源。我看到一些示例代码中的输入数据是.pkl格式的,而mnist数据集是.idx3 ubyte格式的。用于计算视觉的数据集格式也各不相同。我对这些格式都不熟悉,如果能对这个问题有所了解,我将不胜感激。多谢各位 更新:现在我使用下面的代码成功地以.tfrecords格式加载了我的图像,但是这种格式对于cnn来说似乎不可读,所以我仍在尝试修改.pkl格式的代码。然而,我的跑步都失败了 cwd='/Users/Downloads/tflearn_trai

我很难找到这种转变的资源。我看到一些示例代码中的输入数据是.pkl格式的,而mnist数据集是.idx3 ubyte格式的。用于计算视觉的数据集格式也各不相同。我对这些格式都不熟悉,如果能对这个问题有所了解,我将不胜感激。多谢各位


更新:现在我使用下面的代码成功地以.tfrecords格式加载了我的图像,但是这种格式对于cnn来说似乎不可读,所以我仍在尝试修改.pkl格式的代码。然而,我的跑步都失败了

            cwd='/Users/Downloads/tflearn_train/'
            classes={'0','1'} #classify into 2 types
            writer= tf.python_io.TFRecordWriter("train.tfrecords") #file to be produced

            for index,name in enumerate(classes):
                class_path=cwd+name+'/'
                for img_name in os.listdir(class_path):
                    if (not img_name.startswith('.') and img_name != 'Thumbs.db'):
                        img_path=class_path+img_name #the path of every pic
                        img=Image.open(img_path,"r")
                        img= img.resize((224,224))
                        img_raw=img.tobytes()#transform pic into binary
                        example = tf.train.Example(features=tf.train.Features(feature={
                            "label": tf.train.Feature(int64_list=tf.train.Int64List(value=[index])),
                            'img_raw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[img_raw]))
                        }))
                        writer.write(example.SerializeToString())
            writer.close()
上面的工作很好。但我试着把

        write_file = open('train.pkl', 'wb')
        cPickle.dump(example, write_file, -1)
        cPickle.dump(example.features.feature['label'].int64_list.value, write_file, -1)
        write_file.close()
循环的内部和外部。到目前为止,在使用cPickle.load时,我未能生成一个与其他.pkl文件类似的.pkl文件


感谢您的每一个输入。

Pickle将有关python对象结构的信息与数据一起存储。对于简单张量,这可能不是必需的

相反,通常的方法是将二进制格式的矩阵数据转储到文件中,然后直接重新加载到内存中。我相信用于MNIST图形数据集的“.idx3 ubyte”就是这样一个例子

如果您使用python和numpy,那么最好使用numpy的.npy格式,它使用np.load和np.dump函数稍微简化了流程:


如果需要加载二进制数据转储,请查看

,谢谢您的输入。我已经成功地将这些图像和标签加载到.tfrecords表单中,但我找不到任何以这种格式加载文件以训练cnn的代码。假设tf代表tensorflow,我对此没有经验,对不起。