Alexnet猫狗大战问题2及解决方案

def int64_feature(value):
    return tf.train.Feature(int64_list = tf.train.Int64List(value = value))
def bytes_feature(value):
    return tf.train.Feature(bytes_list = tf.train.BytesList(value=[value]))
def convert_to_tfrecord(images_list,labels_list,save_dir,name):
    filename = os.path.join(save_dir,name+'.tfrecords')
    n_samples = len(labels_list)
    writer = tf.python_io.TFRecordWriter(filename)
    print('\nTransform start.........')
    for i in np.arange(0,n_samples):
        try:
            image = cv2.imread(images_list[i])
            image_raw = image.tostring()
            label = int(labels_list[i])
            example = tf.train.Example(features = tf.train.Features(feature = {'label':int64_feature(label),'image_raw':bytes_feature(image_raw)}))
            writer.write(example.SerializeToString())
        except IOError as e:
            print('Could not read:',images_list[i])
    writer.close()
    print('Transform done!')
image,label =get_files(train_dir)
convert_to_tfrecord(image,label,"",name)

问题:    example = tf.train.Example(features = tf.train.Features(feature = {'label':int64_feature(label),'image_raw':bytes_feature(image_raw)}))
  File "F:/opencv/tiaoshi.py", line 44, in int64_feature
    return tf.train.Feature(int64_list = tf.train.Int64List(value = value))
TypeError: Value must be iterable

解决:

def convert_to_tfrecord(images_list, labels_list, save_dir, name):
    filename = os.path.join(save_dir, name + '.tfrecodes')
    n_samples = len(labels_list)
    writer = tf.python_io.TFRecordWriter(filename)
    print("\nTransform start......(%d in total)", n_samples)
    for i in np.arange(0, n_samples):
        print("my_list------", images_list[i])
        try:
            image = cv2.imread(images_list[i]) # type(image) must be array!
            image_raw = image.tostring()
            label = int(labels_list[i])
            example = tf.train.Example(features=tf.train.Features(
                                                feature={''
                                                    'label': tf.train.Feature(int64_list=tf.train.Int64List(value=[label])),
                                                    'image_aw': tf.train.Feature(bytes_list=tf.train.BytesList(value=[image_raw]))
                                                }))
            writer.write(example.SerializeToString())
        except IOError as e:
            print("Could not read:", images_list[i])
    writer.close()
    print("Transform done!")
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值