在体验活动中我快速上手了mindspore,实现了数字分类,其结果如下:
在体验了这一过程后我想要自己动手用mindspore实现一个猫狗分类的任务,用到的神经网络是卷积神经网络,在这一过程中我遇到的难点主要是数据的加载和处理,下文会介绍我这个任务的整个实现过程,以及踩到的坑,重点在于数据的加载和处理。
首先mindspore包含了很多图像数据集,很多可以直接用它封装好的函数,不需要自己创建,但是对于自己特定的任务还是需要自己创建的,首先就是设定训练集和验证集的路径,然后用dataset的一个方法GeneratorDataset就可以创建数据集了,这个比较简单,掌握一些OS库的基本操作就可以,对于文本文件的读取可以用mindspore封装好的LineReader方法,可以很方便的读取文本信息。下面是我的代码(数据集附在附件中):
class MyDataset():
def __init__(self,path,dir):
self.reader=LineReader(path)
self.dir=dir
def __getitem__(self,index):
line=self.reader.readline(int(index+1))
line=line.split(' ')
filepath=os.path.join(self.dir,line[0])
label=int(line[1])
image=Image.open(filepath)
# image = np.array(image) # 转为 NumPy 数组
return image,label
def __len__(self):
return