主頁 >  其他 > 【原理+代碼】Python實作Topsis分析法(優劣解距離法)

【原理+代碼】Python實作Topsis分析法(優劣解距離法)

2022-02-21 18:53:53 其他

目錄

綜合評價法

什么是Topsis法

MATLAB代碼

TOPSIS法的演算法步驟

資料正向化

資料標準化

考慮是否加權?(熵權法)

歸一化并計算得分 (無加權)

最優最劣(加權)

TOPSIS法的評估

可視化

(AHP)層次分析法定權重

每文一語


綜合評價法

評價方法一般分為兩類,一類是主觀賦權法,多數采取綜合咨詢評分確定權重,如:綜合指數法、模糊綜合評價法、層次分析法、功效系數法等,另一類是客觀賦權法,根據各指標之間的相關關系或各指標值變異程度來確定權數,如:主成分分析法、因子分析法、理想解法等,

那么目前,主要使用的評價方法有:主成分分析法、因子分析法、TOPSIS法本文詳解)、秩和比法、灰色關聯法、熵權法、層次分析法、模糊評價法、物元分析法、聚類分析法、價值工程法、神經網路法等,

是不是感覺太多了,其實當你踏進機器學習和演算法,以及建模的道路當中,知識才是越學越多,越學才知道要學的東西太多了,俗話說:人外有人,天外有天,知識的海洋是無窮無盡的,學海無涯,當然要做舟呀,不然還沒有入海3秒你就被淹死了,哈哈哈!

什么是Topsis法

該方法通過構造評價問題的正理想解和負理想解(各指標的最優解和最劣解),通過計算每個方案到理想方案的相對貼近度,即靠近正理想解和負理想解的程度,來對方案進行排序,從而選出最優方案,

TOPSIS法 是根據有限個評價物件與理想化目標的接近程度進行排序的方法,是在現有的物件中進行相對優劣的評價【其中最優解的各指標值都達到各評價指標的最優值,最劣解的各指標值都達到各評價指標的最差值】

TOPSIS法 特別適合具有多組評價物件時,要求通過檢測評價物件與最優解、最劣解的距離來進行排序

原理思想

確定最優方案和最劣方案

計算各評價物件與最優方案、最劣方案的接近程度(典型:熵權法)

計算各評價物件與最優方案的貼近程度

這里有一個MATLAB 代碼案例,可以參考使用,從熵權法到得出評分,本文還是著重從Python的角度實作,

MATLAB代碼

%%  第一步:把資料復制到作業區,并將這個矩陣命名為 X
load data_water_quality.mat          % 資料的名字叫 data_water_quality


%%  第二步:判斷是否需要正向化
[n,m] = size(X);
disp(['共有' num2str(n) '個評價物件, ' num2str(m) '個評價指標']) 
Judge = input(['這' num2str(m) '個指標是否需要經過正向化處理,需要請輸入1 ,不需要輸入0:  ']);

if Judge == 1
    Position = input('請輸入需要正向化處理的指標所在的列,例如第2、3、6三列需要處理,那么你需要輸入[2,3,6]: ');%[2,3,4]
    disp('請輸入需要處理的這些列的指標型別(1:極小型, 2:中間型, 3:區間型) ')
    Type = input('例如:第2列是極小型,第3列是區間型,第6列是中間型,就輸入[1,3,2]:  '); % [2,1,3]
    for i = 1 : size(Position,2)
        X(:,Position(i)) = Positivization(X(:,Position(i)),Type(i),Position(i));
    end
    disp('正向化后的矩陣 X =  ')
    disp(X)
end


%% 第三步:對正向化后的矩陣進行標準化
Z = X ./ repmat(sum(X.*X) .^ 0.5, n, 1);
disp('標準化矩陣 Z = ')
disp(Z)


%% 第四步:讓用戶判斷是否需要增加權重(可以自己決定權重,也可以用熵權法確定權重)
disp("請輸入是否需要增加權重向量,需要輸入1,不需要輸入0")
Judge = input('請輸入是否需要增加權重: ');
if Judge == 1
    Judge = input('使用熵權法確定權重請輸入1,否則輸入0: ');
    if Judge == 1
        if sum(sum(Z<0)) >0   % 如果之前標準化后的Z矩陣中存在負數,則重新對X進行標準化
            disp('原來標準化得到的Z矩陣中存在負數,所以需要對X重新標準化')
            for i = 1:n
                for j = 1:m
                    Z(i,j) = [X(i,j) - min(X(:,j))] / [max(X(:,j)) - min(X(:,j))];
                end
            end
            disp('X重新進行標準化得到的標準化矩陣Z為:  ')
            disp(Z)
        end
        weight = Entropy_Method(Z);
        disp('熵權法確定的權重為:')
        disp(weight)
    else
        disp(['如果你有3個指標,你就需要輸入3個權重,例如它們分別為0.25,0.25,0.5, 則你需要輸入[0.25,0.25,0.5]']);
        weight = input(['你需要輸入' num2str(m) '個權數,' '請以行向量的形式輸入這' num2str(m) '個權重: ']);
        OK = 0;  % 用來判斷用戶的輸入格式是否正確
        while OK == 0 
            if abs(sum(weight) -1)<0.000001 && size(weight,1) == 1 && size(weight,2) == m  % 注意浮點數
                OK =1;
            else
                weight = input('你輸入的有誤,請重新輸入權重行向量: ');
            end
        end
    end
else
    weight = ones(1,m) ./ m ; %如果不需要加權重就默認權重都相同,即都為1/m
end


%% 第五步:計算與最大值的距離和最小值的距離,并算出得分
D_P = sum([(Z - repmat(max(Z),n,1)) .^ 2 ] .* repmat(weight,n,1) ,2) .^ 0.5;   % D+ 與最大值的距離向量
D_N = sum([(Z - repmat(min(Z),n,1)) .^ 2 ] .* repmat(weight,n,1) ,2) .^ 0.5;   % D- 與最小值的距離向量
S = D_N ./ (D_P+D_N);    % 未歸一化的得分
disp('最后的得分為:')
stand_S = S / sum(S)
[sorted_S,index] = sort(stand_S ,'descend')

TOPSIS法的演算法步驟

正向化(每一列都轉為極大型)
標準化(每一個元素都被標準化處理)
歸一化(每一列的和都為 1 )
計算權重(求每一行的和)

資料正向化

有的資料是越大越好,有的資料是靠近某個值越好,有的是在一個區間中最好,這種不同的方向和區間讓分析變得混亂,為了簡化分析我們將資料進行正向化處理,都讓他越大越好,通常來說,常見的資料可以分為四類:

極大型指標(效益類指標):指標數值越大越好,
極小型指標(成本類指標):指標數值越小越好,
中間型指標:指標數值越接近某個值越好,
區間型指標:指標數值在某個區間范圍內最好,區間中的數值大小無優劣之分,

極小型指標轉化為極大型指標:(患病率)

#極小型指標 -> 極大型指標
def dataDirection_1(datas):
    return np.max(datas)-datas     #套公式(1)

中間型指標轉化為極大型指標:(ph值越接近7就越好)

#中間型指標 -> 極大型指標
def dataDirection_2(datas, x_best):
    temp_datas = datas - x_best
    M = np.max(abs(temp_datas))
    answer_datas = 1 - abs(datas - x_best) / M     #套公式
    return answer_datas
    

區間型指標轉化為極大型指標:期望指標的取值最好落在某一個確定的區間最好(如體溫)

#區間型指標 -> 極大型指標
def dataDirection_3(datas, x_min, x_max):
    M = max(x_min - np.min(datas), np.max(datas) - x_max)
    answer_list = []
    for i in datas:
        if(i < x_min):
            answer_list.append(1 - (x_min-i) /M)      #套公式
        elif( x_min <= i <= x_max):
            answer_list.append(1)
        else:
            answer_list.append(1 - (i - x_max)/M)
    return np.array(answer_list)   

那么有時候,我們不是很確定最佳的區間值,可能我們在不同的專家下或者資料下,發現區間值有所波動,舉一個簡單的例子,假設某一個指標官方給出的是[4,5],但是就會出現一個問題,某些情況下5.5和3.5也算是不錯的,如果采用后者那么就會太偏激了,采用前者又太局限了,所以我們應該如何去做呢?這里重新定義了一個公式,添加了最大容忍區間

def dataDirection_3(datas, x_min, x_max, x_minimum, x_maximum):
	def normalization(data):
		if data >= x_min and data <= x_max:
			return 1
		elif data <= x_minimum or data >= x_maximum:
			return 0
		elif data > x_max and data < x_maximum:
			return 1 - (data - x_max) / (x_maximum - x_max)
		elif data < x_min and data > x_minimum:
			return 1 - (x_min - data) / (x_min - x_minimum)

	return list(map(normalization, datas))

上述的轉換,其實最終都是轉換為正向值,不管你的方法是那種,條條大路通羅馬

資料標準化

經過了正向化后,還存在一個問題就是所有的值都有它的量綱,以經過了正向化的表格數值為例,假如直接計算距離,那么肯定是肺活量越大的人越健康,比如肺活量要比其他值大得多,為了消除資料量綱的影響我們需要對資料進行標準化處理,對于每一列的資料進行標準化的方法如下:

構造加權規范矩陣,屬性進行向量規范化,即每一列元素都除以當前列向量的范數(使用余弦距離度量)

# 使用sklearn里面的包,不用傳統的方法
from sklearn.preprocessing import MinMaxScaler,StandardScaler,scale
def temp2(A):
    max_min_scaler=StandardScaler()
    A=max_min_scaler.fit_transform(A)
    return A
#這種方法適合大多數型別的資料,其應用非常廣泛,從公式里我們就可以看出來,轉化之后其均值將變為0,而方差和標準差將變為1(考慮方差的公式),這部分如果不明白那就不妨在本子上推理一下哦,

本質原理:

data = data / np.sqrt((data ** 2).sum())

其他:

def Standard(datas):
    K = np.power(np.sum(pow(datas,2),axis = 0),0.5)
    for i in range(len(K)):
        datas.iloc[: , i] = datas.iloc[: , i] / K[i]
    return datas 

這里可以采用自定義的標準化公式,寫出原始代碼,但是sklearn更加的快速的簡單,正好前期更新了機器學習,

考慮是否加權?(熵權法)

熵權法是一種客觀賦權方法,在具體使用程序中,根據各指標的資料的分散程度,利用資訊熵計算出各指標的熵權,再根據各指標對熵權進行一定的修正,從而得到較為客觀的指標權重,

如果你對某些指標,有更加的專家知識驗證,那么你也可以根據演算法所算出來的權重指標,自己去做一些細微的調整,可能效果更好,

#熵權法等 
def entropy(df):
    #回傳每個樣本的指數
    #樣本數,指標個數
    n,m=np.shape(data0)
    #一行一個樣本,一列一個指標
    #下面是歸一化
    maxium=np.max(data0,axis=0)
    minium=np.min(data0,axis=0)
    data= (data0-minium)*1.0/(maxium-minium)
    ##計算第j項指標,第i個樣本占該指標的比重
    sumzb=np.sum(data,axis=0)
    data=data/sumzb
    #對ln0處理
    a=data*1.0
    a[np.where(data==0)]=0.0001
#    #計算每個指標的熵
    e=(-1.0/np.log(n))*np.sum(data*np.log(a),axis=0)
#    #計算權重
    w=(1-e)/np.sum(1-e)
#     recodes=np.sum(data*w,axis=1)
    return w


plt.figure(figsize=(10,8))
sns.barplot(recodes,df.columns, orient='h')

歸一化并計算得分 (無加權)

def Score(sta_data):
    z_max = np.amax(sta_data , axis=0)
    z_min = np.amin(sta_data , axis=0)
    # 計算每一個樣本點與最大值的距離
    tmpmaxdist = np.power(np.sum(np.power((z_max - sta_data) , 2) , axis = 1) , 0.5)  # 每個樣本距離Z+的距離
    tmpmindist = np.power(np.sum(np.power((z_min - sta_data) , 2) , axis = 1) , 0.5)  # 每個樣本距離Z+的距離
    score = tmpmindist / (tmpmindist + tmpmaxdist)
    score = score / np.sum(score)  # 歸一化處理
    return score

最優最劣(加權)

import pandas as pd
import numpy as np


def topsis(data, weight=None):
	# 歸一化
	data = data / np.sqrt((data ** 2).sum())

	# 最優最劣方案
	Z = pd.DataFrame([data.min(), data.max()], index=['負理想解', '正理想解'])

	# 距離
	weight = entropyWeight(data) if weight is None else np.array(weight)
	Result = data.copy()
	Result['正理想解'] = np.sqrt(((data - Z.loc['正理想解']) ** 2 * weight).sum(axis=1))
	Result['負理想解'] = np.sqrt(((data - Z.loc['負理想解']) ** 2 * weight).sum(axis=1))

	# 綜合得分指數
	Result['綜合得分指數'] = Result['負理想解'] / (Result['負理想解'] + Result['正理想解'])
	Result['排序'] = Result.rank(ascending=False)['綜合得分指數']

	return Result, Z, weight

TOPSIS法的評估

Topsis法 的優點:
(1) 避免了資料的主觀性,不需要目標函式,不用通過檢驗,而且能夠很好的刻畫多個影響指標的綜合影響力度
(2) 對于資料分布及樣本量、指標多少無嚴格限制,既適于小樣本資料,也適于多評價單元、多指標的大系統,較為靈活、方便
Topsis法 的缺點:
(1) 需要的每個指標的資料,對應的量化指標選取會有一定難度
(2) 不確定指標的選取個數為多少適宜,才能夠去很好刻畫指標的影響力度
(3) 必須有兩個以上的研究物件才可以進行使用

可視化

對不同的指標進行正向化之后,然后標準化,歸一化,最終可以可視化,哈哈哈,咋感覺有一點押韻呢,那么這個這么可視化呢?

不錯,就是雷達圖,至于這么繪制雷達圖,我這里就不做詳細的講解了,我的《炫酷可視化》專欄有,詳情點擊下方,即可跳轉,

Python繪制雷達圖之可視化神器pyecharts

先得出上述的表格,在進行可視化

合理確定指標權重是應用 TOPSIS 綜合評價的關鍵

評價結果、評價方法的好壞,本身就具有很強的主觀性,馬克思主義告訴我們“具體問題具體分析,在矛盾普遍性原理的指導下,具體分析矛盾的特殊性,并找出解決矛盾的正確方法,”,怎么在論文中將你的思想、選取方法的原則、指標選取、權重構造盡可能詳盡的展示,才是方法應用成功與否的關鍵,

做建模,切記莫要一貫定性思維,要總結前人有點,學會自主創新,才能獲得真正的進步和提升

(AHP)層次分析法定權重

層次分析法是一種定性與定量相結合的決策分析方法,通過判斷各衡量指標的相對重要程度,進而得到決策方案中每個指標的權重,熵權法是基于資料的定權方法,而層次分析法是基于經驗的定權方法,

注意:層次分析法所提到的特征向量、特征值并不是矩陣中的概念,是重新定義的,

1) 構造指標成對比較矩陣

由于定性定權不免存在偏差,Santy 等人提出使用一致矩陣法,構造成對比較矩陣,設共有 M 個評價指標,

2) 計算矩陣的特征值和特征向量

Step 1 : 先對成對比矩陣進行列歸一化,即每個元素都除以當前列元素的和

Step 2: 將歸一化矩陣按行求和,得到每一行的“特征向量”

Step 3: 將特征向量按列歸一化,得到“指標權重”

Step 4: 成對比矩陣的每一列乘以“指標權重”中對應位置的元素得到矩陣

3) 判斷成對比較矩陣的一致性

定義: 一致性指標 CI 定義為

越趨近于0,說明一致性越好,即成對比矩陣構造合理,但多“小”依舊是人為選取,因此引入 “一致性比率” 來衡量,

定義: 一致性比率 CR,其中 CI 是一致性指標,RI 是隨機一致性指標(查表得到):

本文主要介紹Python,Topsis的相關知識,至于層次分析法,后續會詳細的介紹,這里只是簡單提一下,

每文一語

加油!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/429655.html

標籤:AI

上一篇:【2022美賽 C題 交易策略】多種方案及Python實作

下一篇:從零實作深度學習框架——手寫前饋網路實作電影評論分類

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more