我正在嘗試創建一個 CNN,但使用的是 SIFT 算法而不是任何池化層。問題是我似乎無法在 Tensorflow 或 PyTorch 中找到該算法的任何 Python 實現。我看到的唯一實現是使用 opencv。是否可以將 opencv SIFT 實現用作 Tensorflow CNN 模型中的一個層?如果是這樣,您將如何創建它?
1 回答

烙印99
TA貢獻1829條經驗 獲得超13個贊
雖然這是一個有趣的想法,但我認為它存在許多問題,這使得它非常不切實際甚至不可能。
網絡層的輸入必須是可區分的,以允許計算任何梯度,然后將其用于更新權重。雖然我認為可以編寫一個完全可微分的篩選實現,但僅此一點是不切實際的。
此外,SIFT 沒有恒定數量的輸出并且需要很長時間來計算,這會大大減慢訓練速度。
將 SIFT 與神經網絡一起使用的唯一實用方法是首先運行 SIFT,然后使用前 N 個檢測到的關鍵點作為第一層的輸入。但是,我不確定這是否會成功。
添加回答
舉報
0/150
提交
取消