使用神经网络心态的简单逻辑回归

Kir*_*iIG 2 python neural-network logistic-regression

得到了这个简单的练习,我必须在逻辑回归的帮助下构建一个神经网络。我的数据集是这样构建的:

您将获得一个数据集(“data.h5”),其中包含:

  • 标记为猫 (y=1) 或非猫 (y=0) 的 m_train 图像训练集
  • 标记为猫或非猫的 m_test 图像的测试集
  • 每个图像的形状为 (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.")
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

1)我不明白这是如何工作的: str(train_set_y[:,index])

2)最大的问题是,由于站点问题,我无法下载此数据库,为了进行练习,我想了解它是如何构建的。有人能直观地告诉我它是如何构建的吗?

sar*_*rat 5

我假设此代码片段来自 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
Run Code Online (Sandbox Code Playgroud)