主頁 >  其他 > 從零開始用 Python 構建一個簡單的神經網路

從零開始用 Python 構建一個簡單的神經網路

2022-01-02 07:53:02 其他

線性可分資料集

雞蛋上的神經網路作為神經網路的符號從零開始

正如我們在機器學習教程的前一章中所展示的,僅由一個感知器組成的神經網路足以分離我們的示例類,當然,我們精心設計了這些類以使其作業,有許多類集群,對于它們不起作用,我們將查看其他一些示例,并將討論無法分離類的情況,

我們的類是線性可分的,線性可分性在歐幾里得幾何中有意義,兩組點(或類)稱為線性可分的,如果平面中至少存在一條直線,使得一類的所有點都在直線的一側,而另一類的所有點都在另一側邊,

更正式的:

如果兩個資料簇(類)可以通過線性方程形式的決策邊界分開

∑一世=1nX一世?瓦一世=0

它們被稱為線性可分,

否則,即如果這樣的決策邊界不存在,則這兩個類被稱為線性不可分,在這種情況下,我們不能使用簡單的神經網路,

AND 函式的感知器

在我們的下一個示例中,我們將用 Python 撰寫一個神經網路,它實作邏輯“與”函式,它按以下方式為兩個輸入定義:

輸入1輸入2輸出
000
010
100
111

我們在上一章中了解到,具有一個感知器和兩個輸入值的神經網路可以解釋為決策邊界,即劃分兩個類別的直線,我們要在示例中分類的兩個類如下所示:

 matplotlib.pyplot 匯入 plt
 numpy 匯入 np

圖,  ax  =  plt 子圖() 
xmin ,  xmax  =  - 0.2 ,  1.4 
X  =  np arange ( xmin ,  xmax ,  0.1 ) 
ax scatter ( 0 ,  0 ,  color = "r" ) 
ax scatter ( 0 ,  1 ,  color = "r" ) 
ax 分散(1 ,  0 ,  color = "r" ) 
ax scatter ( 1 ,  1 ,  color = "g" ) 
ax set_xlim ([ xmin ,  xmax ]) 
ax set_ylim ([ - 0.1 ,  1.1 ]) 
m  =  - 1 
#ax.plot(X, m * X + 1.2, label="decision boundary") 
plt . 情節()

輸出:

我們還發現,這樣一個原始的神經網路只能創建穿過原點的直線,所以分割線是這樣的:

 matplotlib.pyplot 匯入 plt
 numpy 匯入 np

圖,  ax  =  plt 子圖() 
xmin ,  xmax  =  - 0.2 ,  1.4 
X  =  np arange ( xmin ,  xmax ,  0.1 ) 
ax set_xlim ([ xmin ,  xmax ]) 
ax set_ylim ([ - 0.1 ,  1.1 ]) 
m  =  - 1 
for  m  in  np 范圍(0 ,  6 ,  0.1 ): 
    ax 繪圖( X ,  m  *  X  ) 
ax scatter ( 0 ,  0 ,  color = "r" ) 
ax scatter ( 0 ,  1 ,  color = "r" ) 
ax scatter ( 1 ,  0 ,  color = "r" ) 
ax 分散( 1,  1 ,  color = "g" ) 
plt . 情節()

輸出:

我們可以看到,這些直線都不能用作決策邊界,也不能用作穿過原點的任何其他直線,

我們需要一條線

是=米?X+C其中截距c不等于 0,

例如線

是=-X+1.2

可以用作我們問題的分隔線:

 matplotlib.pyplot 匯入 plt
 numpy 匯入 np

圖,  ax  =  plt 子圖() 
xmin ,  xmax  =  - 0.2 ,  1.4 
X  =  np arange ( xmin ,  xmax ,  0.1 ) 
ax scatter ( 0 ,  0 ,  color = "r" ) 
ax scatter ( 0 ,  1 ,  color = "r" ) 
ax 分散(1 ,  0 ,  color = "r" ) 
ax scatter ( 1 ,  1 ,  color = "g" ) 
ax set_xlim ([ xmin ,  xmax ]) 
ax set_ylim ([ - 0.1 ,  1.1 ]) 
m ,  c  =  - 1 ,  1.2 
ax 繪圖( X ,  m  *  X  +  c  )
PLT 情節()

輸出:

現在的問題是,我們能否找到對網路模型稍加修改的解決方案?或者換句話說:我們能否創建一個能夠定義任意決策邊界的感知器?

解決方案包括添加偏置節點,

具有偏差的單個感知器

具有兩個輸入值和一個偏差的感知器對應于一條一般直線,借助偏置值,b我們可以訓練感知器來確定具有非零截距的決策邊界c

具有兩個輸入值和一個偏置值的感知器

雖然輸入值可以改變,但偏置值始終保持不變,只能調整偏置節點的權重,

現在,感知器的線性方程包含偏差:

∑一世=1n瓦一世?X一世+瓦n+1?乙=0

在我們的例子中,它看起來像這樣:

瓦1?X1+瓦2?X2+瓦3?乙=0

這相當于

X2=-瓦1瓦2?X1-瓦3瓦2?乙

這意味著:

米=-瓦1瓦2

C=-瓦3瓦2?乙

 
import  numpy  as  np 
from  collections  import  Counter

 感知器def  __init__ ( self ,  
                 weights , 
                 bias = 1 , 
                 learning_rate = 0.3 ): 
        """ 
        'weights' 可以是一個 numpy 陣列、串列或具有
        權重實際值的
元組,輸入值的數量        由'weights' 
        """ 
        self 的長度權重 =  np 陣列(權重)
        自我偏見 = 偏見
        自我學習率 = 學習率
        
    @staticmethod 
    def  unit_step_function ( x ):
        如果  x  <=  0 : 
            return  0 
        else : 
            return  1
        
    def  __call__ ( self ,  in_data ): 
        in_data  =  np 串連( (IN_DATA , [自偏壓])  )
        結果 = 自我weights  @  in_data
        回傳 感知器unit_step_function (結果)
    
    def 調整( self ,  
               target_result ,  
               in_data ): 
        if  type ( in_data )  !=  np . ndarray :
            in_data  =  np 陣列(IN_DATA )  
        calculated_result  = 自(IN_DATA )
        誤差 =  target_result  -  calculated_result
        如果 錯誤 =! 0 :
            IN_DATA  =  NP 連接(  (in_data ,  [ self . 偏差])  )
            校正 = 錯誤 *  in_data  *  self learning_rate
            自我權重 += 修正
            
    DEF 評估(自, 資料, 標簽):
        評價 = 計數器()
        對于 樣品, 標簽  拉鏈(資料, 標簽):
            結果 = 自(樣品) #預測
            如果 結果 == 標簽:
                評價[ “正確” ]  + =  1
            否則:
                評估[ “錯誤” ]  +=  1
        回傳 評估

我們假設上面帶有 Perceptron 類的 Python 代碼以“perceptrons.py”的名稱存盤在您當前的作業目錄中,

import  numpy  as  np 
from  perceptrons  import  Perceptron

def  labelled_samples ( n ): 
    for  _  in  range ( n ): 
        s  =  np 隨機的randint ( 0 ,  2 ,  ( 2 ,)) 
        yield  ( s ,  1 )  if  s [ 0 ]  ==  1  and  s [ 1 ]  ==  1  else  ( s ,  0 )

p  = 感知器(權重= [ 0.3 ,  0.3 ,  0.3 ], 
               learning_rate = 0.2 )

對于 IN_DATA , 標簽  labelled_samples (30 ):
    p 調整(標簽, 
             輸入資料)

test_data ,  test_labels  =  list ( zip ( * labelled_samples ( 30 )))

評價 =  p 評估(test_data , test_labels )
列印(評估)

輸出:

計數器({'正確':30})
 matplotlib.pyplot 匯入 plt
 numpy 匯入 np

圖,  ax  =  plt 子圖() 
xmin ,  xmax  =  - 0.2 ,  1.4 
X  =  np arange ( xmin ,  xmax ,  0.1 ) 
ax scatter ( 0 ,  0 ,  color = "r" ) 
ax scatter ( 0 ,  1 ,  color = "r" ) 
ax 分散(1 ,  0 ,  color = "r" ) 
ax scatter ( 1 ,  1 ,  color = "g" ) 
ax set_xlim ([ xmin ,  xmax ]) 
ax set_ylim ([ - 0.1 ,  1.1 ]) 
m  =  - p 權重[ 0 ]  /  p 權重[ 1 ] 
c  =  - p. 權重[ 2 ]  /  p weights [ 1 ]
列印( m ,  c ) 
ax 繪圖( X ,  m  *  X  +  c  ) 
plt 情節()

輸出:

-3.0000000000000004 3.0000000000000013 []

我們將創建另一個具有線性可分資料集的示例,該資料集需要一個偏置節點才能進行分離,我們將使用以下make_blobs函式sklearn.datasets

 sklearn.datasets 匯入 make_blobs

n_samples  =  250 個
樣本, 標簽 =  make_blobs ( n_samples = n_samples , 
                             中心= ([ 2.5 ,  3 ],  [ 6.7 ,  7.9 ]),  
                             random_state = 0 )

讓我們可視化之前創建的資料:

匯入 matplotlib.pyplot 作為 plt

顏色 =  ( 'green' ,  'magenta' ,  'blue' ,  'cyan' ,  'yellow' ,  'red' ) 
fig ,  ax  =  plt . 子圖()


用于 n_class  范圍(2 ):
    斧分散(樣本[標簽== n_class ][:,  0 ], 樣本[標簽== n_class ][:,  1 ],  
               c =顏色[ n_class ],  s = 40 ,  label = str ( n_class ))

n_learn_data  =  int ( n_samples  *  0.8 )  # 80% 的可用資料點
learn_data ,  test_data  =  samples [: n_learn_data ],  samples [ - n_learn_data :] 
learn_labels ,  test_labels  =  labels [: n_learn_data ],  labels [ - n_learn_data :]

 感知器 匯入 感知器

p  = 感知器(權重= [ 0.3 ,  0.3 ,  0.3 ], 
               learning_rate = 0.8 )

 樣品, 標簽  拉鏈(learn_data , learn_labels ):
    p 調整(標簽,
             樣本)

評價 =  p 評估(學習資料, 學習標簽)
列印(評估)

輸出:

計數器({'正確':200})

讓我們可視化決策邊界:

匯入 matplotlib.pyplot 作為 plt


圖,  ax  =  plt 子圖()

# 繪制學習資料
colors  =  ( 'green' ,  'blue' ) 
for  n_class  in  range ( 2 ): 
    ax 分散( learn_data [ learn_labels == n_class ][:,  0 ],  
               learn_data [ learn_labels == n_class ][:,  1 ],  
               c =顏色[ n_class ],  s = 40 ,  label = str ( n_class))
    
# 繪制測驗資料
colors  =  ( 'lightgreen' ,  ' lightblue ' ) 
for  n_class  in  range ( 2 ): 
    ax . 分散( test_data [ test_labels == n_class ][:,  0 ],  
               test_data [ test_labels == n_class ][:,  1 ],  
               c =顏色[ n_class ],  s = 40 ,  label = str ( n_class))


    
X  =  np arange ( np . max ( samples [:, 0 ])) 
m  =  - p 權重[ 0 ]  /  p 權重[ 1 ] 
c  =  - p 權重[ 2 ]  /  p weights [ 1 ]
列印( m ,  c ) 
ax 情節( X,  m  *  X  +  c  ) 
plt 情節()
plt 顯示()

輸出:

-1.5513529034664024 11.736643489707035

在下一節中,我們將介紹神經網路的 XOR 問題,它是非線性可分神經網路的最簡單示例,它可以通過額外的神經元層來解決,稱為隱藏層,

神經網路的異或問題

XOR(異或)函式由以下真值表定義:

輸入1輸入2異或輸出
000
011
101
110

這個問題不能用簡單的神經網路解決,如下圖所示:

平面中的異或問題點

無論您選擇哪條直線,您都不會成功地在一側擁有藍色點而在另一側擁有橙色點,這如下圖所示,橙色點位于橙色線上,這意味著這不能是一條分界線,如果我們平行移動這條線——無論朝哪個方向,總會有兩個橙色和一個藍色點在一側,而在另一側只有一個藍色點,如果我們以非平行方式移動橙色線,則兩側將有一個藍色和一個橙色點,除非該線通過橙色點,所以沒有辦法用一條直線來分隔這些點,

XOR 問題沒有單一的決策邊界

為了解決這個問題,我們需要引入一種新型的神經網路,一種具有所謂隱藏層的網路,隱藏層允許網路重新組織或重新排列輸入資料,

帶有隱藏層的簡單人工網路

我們只需要一個帶有兩個神經元的隱藏層,一個像與門一樣作業,另一個像或門一樣作業,當 OR 門觸發而 AND 門不觸發時,輸出將“觸發”,

正如我們已經提到的,我們找不到將橙色點與藍色點分開的線,但是它們可以用兩條線分開,例如下圖中的L 1和 L 2:

神經網路中的異或問題

為了解決這個問題,我們需要以下型別的網路,即具有隱藏層 N 1和 N 2

網路解決異或問題

神經元N 1將確定一條線,例如L 1并且神經元N 2將確定另一條線L 2,N 3最侄訓解決我們的問題:

解釋解決異或問題的網路

在 Python 中實作這一點必須等到我們機器學習教程的下一章,

練習

練習 1

我們可以通過以下方式將邏輯 AND 擴展為 0 和 1 之間的浮點值:

輸入1輸入2輸出
x1 < 0.5x2 < 0.50
x1 < 0.5x2 >= 0.50
x1 >= 0.5x2 < 0.50
x1 >= 0.5x2 >= 0.51

嘗試訓練一個只有一個感知器的神經網路,為什么不起作用?

練習 2

一個點屬于 0 類,如果 X1<0.5 并且屬于第 1 類,如果 X1>=0.5. 用一個感知器訓練一個網路來對任意點進行分類,你對切割邊界有什么看法?輸入值怎么樣X2

練習題解答

第一個練習的解決方案

 感知器 匯入 感知器

p  = 感知器(權重= [ 0.3 ,  0.3 ,  0.3 ],
               偏差= 1 , 
               learning_rate = 0.2 )

def  labelled_samples ( n ): 
    for  _  in  range ( n ): 
        s  =  np 隨機的random (( 2 ,)) 
        yield  ( s ,  1 )  if  s [ 0 ]  >=  0.5  and  s [ 1 ]  >=  0.5  else  ( s ,  0 )

對于 IN_DATA , 標簽  labelled_samples (30 ):
    p 調整(標簽, 
             輸入資料)

test_data ,  test_labels  =  list ( zip ( * labelled_samples ( 60 )))

評價 =  p 評估(test_data , test_labels )
列印(評估)

輸出:

計數器({'正確':52,'錯誤':8})

查看為什么它不起作用的最簡單方法是將資料可視化,

 matplotlib.pyplot 匯入 plt
 numpy 匯入 np

ones  =  [ test_data [ i ]  for  i  in  range ( len ( test_data ))  if  test_labels [ i ]  ==  1 ] 
zeroes  =  [ test_data [ i ]  for  i  in  range ( len ( test_data ))  if  test_labels [ i ]  ==  0 ]

圖,  ax  =  plt subplots () 
xmin ,  xmax  =  - 0.2 ,  1.2 
X ,  Y  =  list ( zip ( * ones )) 
ax scatter ( X ,  Y ,  color = "g" ) 
X ,  Y  =  list ( zip ( * zeroes )) 
ax 散射( X , Y ,  color = "r" ) 
ax set_xlim ([ xmin ,  xmax ]) 
ax set_ylim ([ - 0.1 ,  1.1 ]) 
c  =  - p 權重[ 2 ]  /  p 權重[ 1 ] 
m  =  - p 權重[ 0 ]  /  p 權重[ 1 ] 
X  = NP . arange ( xmin ,  xmax ,  0.1 ) 
ax 繪圖(X , m  *  X  +  c , 標簽= “決策邊界” 

輸出:

[<matplotlib.lines.Line2D 在 0x7fba8a295790>]

我們可以看到,綠點和紅點不是一條直線,

第二個練習的解決方案

 感知器 匯入 感知器

import  numpy  as  np 
from  collections  import  Counter

def  labelled_samples ( n ): 
    for  _  in  range ( n ): 
        s  =  np 隨機的random (( 2 ,)) 
        yield  ( s ,  0 )  if  s [ 0 ]  <  0.5  else  ( s ,  1 )


p  = 感知器(權重= [ 0.3 ,  0.3 ,  0.3 ], 
               learning_rate = 0.4 )

對于 IN_DATA , 標簽  labelled_samples (300 ):
    p 調整(標簽, 
             輸入資料)

test_data ,  test_labels  =  list ( zip ( * labelled_samples ( 500 )))

列印(p 權重)
p 評估(test_data , test_labels )

輸出:

[ 2.22622234 -0.05588858 -0.9 ]
計數器({'正確':460,'錯誤':40})
 matplotlib.pyplot 匯入 plt
 numpy 匯入 np

ones  =  [ test_data [ i ]  for  i  in  range ( len ( test_data ))  if  test_labels [ i ]  ==  1 ] 
zeroes  =  [ test_data [ i ]  for  i  in  range ( len ( test_data ))  if  test_labels [ i ]  ==  0 ]

圖,  ax  =  plt subplots () 
xmin ,  xmax  =  - 0.2 ,  1.2 
X ,  Y  =  list ( zip ( * ones )) 
ax scatter ( X ,  Y ,  color = "g" ) 
X ,  Y  =  list ( zip ( * zeroes )) 
ax 散射( X , Y ,  color = "r" ) 
ax set_xlim ([ xmin ,  xmax ]) 
ax set_ylim ([ - 0.1 ,  1.1 ]) 
c  =  - p 權重[ 2 ]  /  p 權重[ 1 ] 
m  =  - p 權重[ 0 ]  /  p 權重[ 1 ] 
X  = NP . arange ( xmin ,  xmax ,  0.1 ) 
ax 繪圖(X , m  *  X  +  c , 標簽= “決策邊界” 

輸出:

[<matplotlib.lines.Line2D 在 0x7fba8a1fbac0>]
p 權重, 米

輸出:

(陣列([ 2.22622234, -0.05588858, -0.9 ]), 39.83322163376969)

m在這種情況下,斜率必須越來越大,

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

標籤:AI

上一篇:matplotlib和numpy的基本使用

下一篇:jQueryUI渲染問題中的對話框:關閉按鈕具有延伸到頁面邊緣的長藍色輪廓,僅限Firefox

標籤雲
其他(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