第一次做MachineLearning的笔记,因为实在是碰到问题了。最近跟着李宏毅老师学习到了很多知识,课程地址:点击前往
第三个作业是CNN。但是课程网站里的ExampleCode给的是Pytorch版本的,而我用的是Tensorflow,懒得再安装pytorch环境运行,所以从头到尾自己用keras写了一下,在这篇文章里我记录一下我出现的一些问题。
作业描述
其实当作业给的数据集有1.0GBytes的时候,我就知道问题没这么简单。
其中,training文件夹中有一万张图片,validation文件夹中有3000张验证图片。
他们的文件名数字开头就是他们的类型,我们需要分类图片中的食物类型,一万张图片,共11种食物
读取数据
def readfile(path, label):
# label 是一個 boolean variable,代表需不需要回傳 y 值
image_dir = sorted(os.listdir(path))
x = np.zeros((len(image_dir), 128, 128, 3), dtype=np.uint8)
y = np.zeros((len(image_dir)), dtype=np.uint8)
for i, file in enumerate(image_dir):
img = cv2.imread(os.path.join(path, file))
x[i, :, :] = cv2.resize(img,(128, 128))
if label:
y[i] = int(file.split("_")[0])
if label:
return x, y
else:
return x
workspace_dir = './data'
print("Reading data")
train_x, train_y = readfile(os.path.join(workspace_dir, "training"), True)
print("Size of training data = {}".format(len(train_x)