簡體   English   中英

關於 -1 的重要性的一般問題

[英]General question about the significance of -1

我正在處理機器學習中的一個問題,我看到 [-1] 在代碼的不同位置經常出現,但我似乎無法理解它的重要性。

在這個特定示例中,目標是稍微移動訓練集中的所有圖像。

這是代碼:

from scipy.ndimage.interpolation import shift

def shift_image(image, dx, dy):
    image = image.reshape((28, 28))
    shifted_image = shift(image, [dy, dx], cval=0, mode="constant")
    return shifted_image.reshape([-1])

最后一行的 -1 有什么意義?

在numpy數組中, reshape允許您在嘗試整形數組時“推斷”其中一個尺寸。

import numpy as np
a = np.arange(4).reshape(2,2)
#Output:
array([[0, 1],
       [2, 3]])
a.reshape([-1])
#Output:
array([0, 1, 2, 3])

如果您注意到了,還可以使用推論重寫第一個重塑,如下所示:

b =np.arange(4).reshape(2,-1)
#Output:
array([[0, 1],
       [2, 3]])

這行:

shifted_image.reshape([-1])

只需使用列表作為參數調用reshape方法,該列表恰好包含單個元素,數字-1 這具有重塑numpy數組的效果。 從文檔:

一個形狀尺寸可以為-1。 在這種情況下,該值是根據數組的長度和其余維來推斷的

reshape方法將整數列表作為其參數,在這種情況下,列表的元素為-1。

-1特別影響大小調整,我確定您可以在numpy文檔中找到。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM