国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

pytorch對(duì)矩陣(奇異和非奇異)求逆

這篇具有很好參考價(jià)值的文章主要介紹了pytorch對(duì)矩陣(奇異和非奇異)求逆。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

非奇異矩陣求逆

import torch
x = torch.FloatTensor([[[1.0, 2.0],
                        [1.0, 4.0]],
                       [[1.0, 2.0],
                       [1.0, 3.0]]])
y=torch.inverse(x)
print(y)

輸出結(jié)果為

tensor([[[ 2.0000, -1.0000],
         [-0.5000,  0.5000]],

        [[ 3.0000, -2.0000],
         [-1.0000,  1.0000]]])

或者用

y=torch.linalg.inv(x)

也可以得到相同的結(jié)果

奇異矩陣求逆

import torch
x = torch.FloatTensor([[[1.0, 2.0],
                        [1.0, 2.0]],
                       [[1.0, 2.0],
                       [1.0, 3.0]]])
y=torch.inverse(x)
print(y)

報(bào)錯(cuò):

RuntimeError: inverse_cpu: The diagonal element 2 is zero, the inversion could not be completed because the input matrix is singular.

法1:計(jì)算矩陣行列式,計(jì)算abs(det)>0的矩陣的逆,刪除奇異矩陣。缺點(diǎn)是改變了張量維度。

import torch
from torch.linalg import det
x = torch.FloatTensor([[[1.0, 2.0],
                        [1.0, 2.0]],
                       [[1.0, 2.0],
                       [1.0, 3.0]]])
determinants = torch.det(x)
y =torch.inverse(x[determinants.abs()>0.])
print(y)

輸出結(jié)果為

tensor([[[ 3., -2.],
         [-1.,  1.]]])

法2:用torch.linalg.pinv()得到奇異矩陣的偽逆矩陣

import torch
x = torch.FloatTensor([[[1.0, 2.0],
                        [1.0, 2.0]],
                       [[1.0, 2.0],
                       [1.0, 3.0]]])
y=torch.linalg.pinv(x)
print(y)

輸出結(jié)果為

tensor([[[ 0.1000,  0.1000],
         [ 0.2000,  0.2000]],

        [[ 3.0000, -2.0000],
         [-1.0000,  1.0000]]])

自定義求逆函數(shù),僅針對(duì)非奇異矩陣

import torch
import numpy as np
from torch.linalg import det
 
def cof1(M,index):
    zs = M[:index[0]-1,:index[1]-1]
    ys = M[:index[0]-1,index[1]:]
    zx = M[index[0]:,:index[1]-1]
    yx = M[index[0]:,index[1]:]
    s = torch.cat((zs,ys),axis=1)
    x = torch.cat((zx,yx),axis=1)
    return det(torch.cat((s,x),axis=0))
 
def alcof(M,index):
    return pow(-1,index[0]+index[1])*cof1(M,index)
 
def adj(M):
    result = torch.zeros((M.shape[0],M.shape[1]))
    for i in range(1,M.shape[0]+1):
        for j in range(1,M.shape[1]+1):
            result[j-1][i-1] = alcof(M,[i,j])
    return result
 
def invmat(M):
    return 1.0/det(M)*adj(M)
    
x = torch.FloatTensor([[1.0, 2.0],
                        [1.0, 4.0]])
print(invmat(x))

輸出結(jié)果:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-527118.html

tensor([[ 2.0000, -1.0000],
        [-0.5000,  0.5000]])

到了這里,關(guān)于pytorch對(duì)矩陣(奇異和非奇異)求逆的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 奇異矩陣與非奇異矩陣(廣義逆)

    奇異矩陣與非奇異矩陣(廣義逆)

    最近看了一篇多視圖聚類(lèi)的論文,論文代碼使用matlab,在matlab中求矩陣的逆是使用了廣義的逆pinv,對(duì)此很疑惑,整理資料供自己查閱。 奇異矩陣 奇異矩陣的概念源于線性代數(shù),就是對(duì)應(yīng)行列式為0的方陣。 非奇異矩陣 對(duì)應(yīng)行列式非零的方陣為非奇異矩陣。 判斷方法 首先看

    2023年04月08日
    瀏覽(15)
  • 【數(shù)學(xué)與算法】奇異矩陣、奇異值、奇異值分解、奇異性

    【數(shù)學(xué)與算法】奇異矩陣、奇異值、奇異值分解、奇異性

    我們經(jīng)常會(huì)碰到幾個(gè)名詞很相近的一些數(shù)學(xué)術(shù)語(yǔ),例如 奇異矩陣、奇異值、奇異值分解、奇異性 ,經(jīng)常會(huì)混淆,這里把它們的定義放在一起,做一下總結(jié): 1.奇異矩陣: 奇異矩陣 是線性代數(shù)的概念,就是該矩陣的 秩不是滿(mǎn)秩 。 首先,看這個(gè)矩陣是不是方陣,即行數(shù)和列數(shù)

    2024年02月06日
    瀏覽(24)
  • 【例題】利用伴隨矩陣求逆矩陣

    【例1:同濟(jì)線代習(xí)題二 9.1】求下列矩陣的逆矩陣: A = ( 1 2 2 5 ) boldsymbol{A} = begin{pmatrix} 1 2 \\\\ 2 5 end{pmatrix} A = ( 1 2 ? 2 5 ? ) 解答 因?yàn)?∣ A ∣ = 5 ? 4 = 1 ≠ 0 |boldsymbol{A}| = 5 - 4 = 1 ne 0 ∣ A ∣ = 5 ? 4 = 1  = 0 ,所以 A boldsymbol{A} A 可逆。有 A ? 1 = 1 ∣ A ∣ A ? = ( 5 ? 2 ?

    2023年04月11日
    瀏覽(26)
  • 3.3 伴隨矩陣法求逆矩陣

    ??逆矩陣指的是另一個(gè)矩陣和自己相乘會(huì)變成單位矩陣,符號(hào)是右上角一個(gè) ? 1 -1 ? 1 ,就是: A A ? 1 = A ? 1 A = I AA^{-1}=A^{-1}A=I A A ? 1 = A ? 1 A = I ??例如以下兩個(gè)矩陣就是互為逆矩陣: ( ? 1 1 0 0 ? 3 2 1 0 1 1 0 ? 1 4 ? 4 ? 1 1 ) ( 1 1 1 1 2 1 1 1 ? 1 2 1 1 3 2 1 2 ) = ( 1 0

    2024年02月09日
    瀏覽(16)
  • 分塊矩陣求逆推導(dǎo) + 矩陣反演公式由來(lái)

    分塊矩陣求逆推導(dǎo) + 矩陣反演公式由來(lái)

    引自知乎:https://www.zhihu.com/question/47760591 David Sun 大佬的回答 其實(shí)也可以正面剛,下面從正面剛一下: 其實(shí)正面剛比上一種解法更簡(jiǎn)單! PS:啥時(shí)候Markdown 編輯公式能像Mathtype 那么方便就好了,這樣筆者也不用先在word中編輯一遍再貼個(gè)圖過(guò)來(lái)了。 注意到第一種分塊矩陣求逆

    2024年02月07日
    瀏覽(19)
  • 線性代數(shù)——求逆矩陣

    線性代數(shù)——求逆矩陣

    利用計(jì)算技巧湊出公式:兩邊加E、提取公因式、沒(méi)有公因式可提時(shí)利用隱形的E=AA^(-1),因?yàn)镋可看作系數(shù)1 主對(duì)角線有矩陣(副對(duì)角線是0矩陣),則分別逆后放在原位置 副對(duì)角線有矩陣(主對(duì)角線是0矩陣),則分別逆后互換位置

    2024年02月11日
    瀏覽(33)
  • 分塊對(duì)角矩陣的求逆

    分塊對(duì)角矩陣的逆矩陣: [ A B C ? ] ? 1 = [ A ? 1 B ? 1 C ? 1 ? ] begin{bmatrix} mathbf{A} \\\\ mathbf{B} \\\\ mathbf{C} \\\\ ddots \\\\ end{bmatrix}^{-1} = begin{bmatrix} mathbf{A}^{-1} \\\\ mathbf{B}^{-1} \\\\ mathbf{C}^{-1} \\\\ ddots \\\\ end{bmatrix} ? ? ? ? ? A ? B ? C ? ? ? ? ? ? ? ? ? 1 = ? ? ? ?

    2024年02月05日
    瀏覽(18)
  • Maple矩陣求逆

    Maple矩陣求逆

    如何使用Maple進(jìn)行矩陣求逆 調(diào)用包 輸入我想要的矩陣: 然后我使用了Inverse命令 結(jié)果并沒(méi)有生成矩陣的逆。 查了一下說(shuō)明手冊(cè)加上 mod 好像也不行,而且手冊(cè)的mod的參數(shù)我也沒(méi)有看懂。 上網(wǎng)查了一下解決方法: 改用命令 MatrixInverse 就可以了。 完美解決!

    2024年02月11日
    瀏覽(20)
  • 線性代數(shù)|例題:利用伴隨矩陣求逆矩陣

    【例1:同濟(jì)線代習(xí)題二 9.1】求下列矩陣的逆矩陣: A = ( 1 2 2 5 ) boldsymbol{A} = begin{pmatrix} 1 2 \\\\ 2 5 end{pmatrix} A = ( 1 2 ? 2 5 ? ) 解答 因?yàn)?∣ A ∣ = 5 ? 4 = 1 ≠ 0 |boldsymbol{A}| = 5 - 4 = 1 ne 0 ∣ A ∣ = 5 ? 4 = 1  = 0 ,所以 A boldsymbol{A} A 可逆。有 A ? 1 = 1 ∣ A ∣ A ? = ( 5 ? 2 ?

    2024年02月08日
    瀏覽(25)
  • 線代——求逆矩陣的快捷方法

    線代——求逆矩陣的快捷方法

    通常,求逆矩陣有兩種方法: 方法一: 方法二: 但是,對(duì)于 特殊矩陣 ,如: A = [ a b c d ] A = begin{bmatrix} a b\\\\ c d end{bmatrix} A = [ a c ? b d ? ] ,其逆矩陣 A ? 1 = 1 a d ? b c [ d ? b ? c a ] A^{-1}=frac{1}{ad-bc}begin{bmatrix} d -b\\\\ -c a end{bmatrix} A ? 1 = a d ? b c 1 ? [ d ? c ? ? b a

    2023年04月08日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包