据我了解,此练习的目的是将矩阵x展平为n×1的向量。为了让我们为这个家庭作业示例作业做好准备,Ng教授让我们在Coursera Jupiter笔记本中进行了Python Basics With Numpy的练习。这是示例之一:
def image2vector(image):
"""
Argument:
image -- a numpy array of shape (length, height, depth)
Returns:
a vector of shape (length*height*depth, 1)
"""
return image.reshape(image.shape[0]*image.shape[1]*image.shape[2],1)
这是一个3 x 3 x 2的数组,通常图像将是(num_px_x,num_px_y,3),其中3代表RGB值
image = np.array([[[ 0.67826139, 0.29380381],
[ 0.90714982, 0.52835647],
[ 0.4215251 , 0.45017551]],
[[ 0.92814219, 0.96677647],
[ 0.85304703, 0.52351845],
[ 0.19981397, 0.27417313]],
[[ 0.60659855, 0.00533165],
[ 0.10820313, 0.49978937],
[ 0.34144279, 0.94630077]]])
print ("image2vector(image) = " + str(image2vector(image)))
**Expected Output**:
<table style="width:100%">
<tr>
<td> **image2vector(image)** </td>
<td> [[ 0.67826139]
[ 0.29380381]
[ 0.90714982]
[ 0.52835647]
[ 0.4215251 ]
[ 0.45017551]
[ 0.92814219]
[ 0.96677647]
[ 0.85304703]
[ 0.52351845]
[ 0.19981397]
[ 0.27417313]
[ 0.60659855]
[ 0.00533165]
[ 0.10820313]
[ 0.49978937]
[ 0.34144279]
[ 0.94630077]]</td>
</tr>
现在我在家庭作业中遇到的问题之一是应用此练习示例。
现在他给我们的提示是:
“当您要将形状(a,b,c,d)的矩阵X展平为矩阵时的技巧
X_flatten of shape (b ∗ c ∗ d, a) is to use: X_flatten = X.reshape(X.shape[0], -1).T "
现在我知道X.reshape(X.shape [0],-1).T是一个“技巧”,您可以用来实现我们的目标,即展平X,但是我想保持一致并尝试根据开头给出的示例来解决此问题。
这就是我得到的:
train_set_x_flatten = train_set_x_orig.reshape(train_set_x_orig.shape[1] *
train_set_x_orig.shape[2] * train_set_x_orig.shape[3],1)
他还告诉我们: train_set_x_orig是一个形状为numpy的数组(m_train,num_px,num_px,3)
上面的代码与实践示例一致,我不确定为什么它不起作用。我会喜欢一些与开始时给出的示例一致的建议!
谢谢!