现在在搞毕设开始学习深度学习相关的知识,但是在构建数据集的时候就遇到了不小的问题,本人用的mindspore,在使用cifar等数据集的时候可以正常进行学习,但是自己构建数据集的时候却总是提示数据集无效,我使用的是matplotlib生成的信号星座图作为数据集生成图像为.png,并通过ImageFolderDataset函数导入,导入之后进行print查看可以得到
<mindspore.dataset.engine.datasets.RepeatDataset object at 0x0000020F4E100548>
但是使用get_dataset_size函数查看的时候返回的数值是0.
不知道是不是数据集使用的图像格式有问题,还是我导入生成数据集的函数出了问题,恳请各位指点。
代码是模仿着mindspore教程的代码文档去写的,也确实有些一知半解,实在不知道怎么解决了。
这里是定义的创建数据集函数
def create_dataset(data_path, batch_size=16, repeat_size=1):
BPSK_dataset = ds.ImageFolderDataset(data_path)
resize_op = CV.Resize((cfg.image_height, cfg.image_width))
normalize_op = CV.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
typecast_op = C.TypeCast(mstype.int32)
channel_swap_op = CV.HWC2CHW()
BPSK_dataset = BPSK_dataset.map(operations=typecast_op, input_columns="label")
BPSK_dataset = BPSK_dataset.map(operations=resize_op, input_columns="image")
BPSK_dataset = BPSK_dataset.map(operations=normalize_op, input_columns="image")
BPSK_dataset = BPSK_dataset.map(operations=channel_swap_op, input_columns="image")
BPSK_dataset = BPSK_dataset.shuffle(buffer_size=cfg.buffer_size)
BPSK_dataset = BPSK_dataset.batch(batch_size, drop_remainder=True)
BPSK_dataset = BPSK_dataset.repeat(repeat_size)
return BPSK_dataset
在调用函数model.train()的时候出现错误,经过排查原因是dataset_size==0
训练部分的代码如下:
BPSK_train = create_dataset(args.data_path,
cfg.batch_size,
repeat_size)
config_ck = CheckpointConfig(save_checkpoint_steps=cfg.save_checkpoint_steps,
keep_checkpoint_max=cfg.keep_checkpoint_max)
ckpoint_cb = ModelCheckpoint(prefix="checkpoint_alexnet", directory=args.ckpt_path, config=config_ck)
model.train(cfg.epoch_size, BPSK_train, callbacks=[ckpoint_cb, LossMonitor()])
写的程序可能有些太笨了,谢谢各位指教,不知道深度学习的数据集在导入的时候有什么要求,是不是需要特定的格式?