进行了这个简单的练习,我必须借助Logistic回归构建NN。我的数据集是通过以下方式构建的:
您将获得一个包含以下内容的数据集(“ data.h5”)
- 一组训练为m_train图像的训练集,标记为cat(y = 1)或non-cat(y = 0)
- 由m_test张图片标记为cat或non-cat的测试集
- 每个图像的形状为(num_px,num_px,3),其中3表示3个通道(RGB)。因此,每个图像都是正方形(高度= num_px),并且 (宽度= num_px)。
要显示数据库中的图像,文本为我提供了一个示例:
# Example of a picture# Examp
index = 25
plt.imshow(train_set_x_orig[index])
print ("y = " + str(train_set_y[:,index]) + ", it's a '" + classes[np.squeeze(train_set_y[:,index])].decode("utf-8") + "' picture.")
我有2个问题:
1)我不了解其工作原理:str(train_set_y[:,index])
2)最大的问题是,由于站点问题,我无法下载此数据库,并且为了进行练习,我想了解它是如何构建的。有人可以直观地告诉我它的结构吗?
答案 0 :(得分:0)
我认为此代码段来自Coursera深度学习课程1。
“ train_set_y” 是形状为(1,209)的向量,即,对于所有209个训练示例,其标签均为0或1,“ train_set_y [:,25]” 给出从向量train_set_y的第25个位置开始的整数标签0或1。在连接字符串(“ y =” + str(train_set_y [:,index]))时。我们需要使用str将其转换为字符串。
检查笔记本中的 lr_utils.py 文件,它将使您清楚地了解如何加载和转换数据集。
下面是lr_utils.py文件中的代码段
def load_dataset():
train_dataset = h5py.File('datasets/train_catvnoncat.h5', "r")
train_set_x_orig = np.array(train_dataset["train_set_x"][:]) # your train set features
train_set_y_orig = np.array(train_dataset["train_set_y"][:]) # your train set labels
test_dataset = h5py.File('datasets/test_catvnoncat.h5', "r")
test_set_x_orig = np.array(test_dataset["test_set_x"][:]) # your test set features
test_set_y_orig = np.array(test_dataset["test_set_y"][:]) # your test set labels
classes = np.array(test_dataset["list_classes"][:]) # the list of classes
train_set_y_orig = train_set_y_orig.reshape((1, train_set_y_orig.shape[0]))
test_set_y_orig = test_set_y_orig.reshape((1, test_set_y_orig.shape[0]))
return train_set_x_orig, train_set_y_orig, test_set_x_orig, test_set_y_orig, classes
答案 1 :(得分:0)
可以在此位置下载数据集,(感谢Anderson!)
然后构建@taurz的lr_utils函数,将sys.path()放入任何目录,但请确保从train_dataset = h5py.File('datasets / train_catvnoncat.h5',“ r“)
str(train_set_y [:,index])是标签>> train_set_y,您可以看到所有功能, train_set_y.shape =(1,209),train_set_y [:,25] [0] = 1,这意味着它是猫。