主頁 >  其他 > 深度學習------用NN、CNN、RNN神經網路實作mnist資料集處理

深度學習------用NN、CNN、RNN神經網路實作mnist資料集處理

2022-02-15 07:22:46 其他

1. 用NN神經網路完成MNIST資料集處理

# 用NN神經網路完成MNIST資料集處理 
# 1、導包
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data
# 2、加載mnist資料集
mnist=input_data.read_data_sets('mnist_data',one_hot=True)
x_data=mnist.train.images
y_data=mnist.train.labels
# 3、設定占位符
x=tf.placeholder(tf.float32,shape=[None,28*28])
y=tf.placeholder(tf.float32,shape=[None,10])
# 4、設定偏置權重
w1=tf.Variable(tf.random_normal([28*28,200]))
b1=tf.Variable(tf.random_normal([200]))

w2=tf.Variable(tf.random_normal([200,100]))
b2=tf.Variable(tf.random_normal([100]))

w3=tf.Variable(tf.random_normal([100,10]))
b3=tf.Variable(tf.random_normal([10]))
# 5、設定預測模型
a1=tf.tanh(tf.matmul(x,w1)+b1)
a2=tf.tanh(tf.matmul(a1,w2)+b2)
a3=tf.matmul(a2,w3)+b3

# 6、代價函式
cost=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=a3,labels=y))

# 7、小批量梯度下降
# optimiter=tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)
dz3=a3-y
dw3=tf.matmul(tf.transpose(a2),dz3)/tf.cast(tf.shape(a2)[0],dtype=tf.float32)
db3=tf.reduce_mean(dz3,axis=0)

da2=tf.matmul(dz3,tf.transpose(w3))
dz2=da2*a2*(1-a2)
dw2=tf.matmul(tf.transpose(a1),dz2)/tf.cast(tf.shape(a1)[0],dtype=tf.float32)
db2=tf.reduce_mean(dz2,axis=0)

da1=tf.matmul(dz2,tf.transpose(w2))
dz1=da1*a1*(1-a1)
dw1=tf.matmul(tf.transpose(x),dz1)/tf.cast(tf.shape(x)[0],dtype=tf.float32)
db1=tf.reduce_mean(dz1,axis=0)
learning=0.01
optimiter=[
    tf.assign(w3,w3-learning*dw3),
    tf.assign(w2,w2-learning*dw2),
    tf.assign(w1,w1-learning*dw1),
    tf.assign(b3,b3-learning*db3),
    tf.assign(b2,b2-learning*db2),
    tf.assign(b1,b1-learning*db1),
]
# correct=tf.nn.in_top_k(a3,y,1)
# accuracy=tf.reduce_mean(tf.cast(correct,tf.float32))
y_true=tf.argmax(y,1)
y_predict=tf.argmax(a3,1)
accuracy=tf.reduce_mean(tf.cast(tf.equal(y_true,y_predict),tf.float32))
# 8、創建會話
sess=tf.Session()
sess.run(tf.global_variables_initializer())
# 9、回圈輸出精度和代價
batch_size=100
train_count=20
ls=[]
for epo in range(train_count):
    avg_cost=0
    total_batch=mnist.train.num_examples//batch_size
    for i in range(total_batch):
        batch_x,batch_y=mnist.train.next_batch(batch_size)
        cost_val,_,acc=sess.run([cost,optimiter,accuracy],feed_dict={x:batch_x,y:batch_y})
        avg_cost+=cost_val/total_batch
    ls.append(avg_cost)
    print('epo:',epo,'代價值:',avg_cost)
acc_v=sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})
print(acc_v)
# 10、畫出代價函式圖
plt.plot(ls)
plt.show()

在這里插入圖片描述

2. 用卷積神經網路完成mnist資料集處理

方法一:

# 1.運用卷積神經網路完成mnist資料集處理
# 1、導包
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data
# 2、加載資料
mnist=input_data.read_data_sets('mnist_data',one_hot=True)
x_data=mnist.train.images
y_data=mnist.train.labels
# 3、設定超引數
width=28
height=28
# 4、定義卷積占位符
x=tf.placeholder(tf.float32,shape=[None,height*width])
y=tf.placeholder(tf.float32,shape=[None,10])
x_img=tf.reshape(x,[-1,width,height,1])
# 5、設定第一層權重,卷積,池化層
w1=tf.Variable(tf.random_normal([3,3,1,16]))
l1=tf.nn.conv2d(x_img,w1,strides=[1,1,1,1],padding='SAME')
l1=tf.nn.relu(l1)
l1=tf.nn.max_pool(l1,ksize=[1,2,2,1],strides=[1,2,2,1],padding='VALID')
# 6、設定第二層卷積,權重,池化層
w2=tf.Variable(tf.random_normal([3,3,16,32]))
l2=tf.nn.conv2d(l1,w2,strides=[1,1,1,1],padding='SAME')
l2=tf.nn.relu(l2)
l2=tf.nn.max_pool(l2,ksize=[1,2,2,1],strides=[1,2,2,1],padding='VALID')

dim=l2.get_shape()[1].value*l2.get_shape()[2].value*l2.get_shape()[3].value
l2_flat=tf.reshape(l2,[-1,dim])
# 7、設定全連接層
w3=tf.Variable(tf.random_normal([dim,100],stddev=0.01))
b3=tf.Variable(tf.random_normal([100]))
logit1=tf.matmul(l2_flat,w3)+b3

w4=tf.Variable(tf.random_normal([100,10],stddev=0.01))
b4=tf.Variable(tf.random_normal([10]))
logit2=tf.matmul(logit1,w4)+b4

# 8、設定代價函式,設定精度函式
cost=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logit2,labels=y))
optimiter=tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)

y_true=tf.argmax(y,1)
y_predict=tf.argmax(logit2,1)
accuracy=tf.reduce_mean(tf.cast(tf.equal(y_true,y_predict),tf.float32))
# 9、小批量梯度下降訓練模型
sess=tf.Session()
sess.run(tf.global_variables_initializer())
batch_size=100
train_count=15
ls=[]
for epo in range(train_count):
    avg_cost=0
    total_batch=mnist.train.num_examples//batch_size
    for i in range(total_batch):
        batch_x,batch_y=mnist.train.next_batch(batch_size)
        cost_val,_,acc=sess.run([cost,optimiter,accuracy],feed_dict={x:batch_x,y:batch_y})
        avg_cost+=cost_val/total_batch
    ls.append(avg_cost)
    print('epo:',epo,'代價值:',avg_cost)
    
# 10、輸出精度與代價
acc_v=sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})
print(acc_v)
plt.plot(ls)
plt.show()

方法二:

# 1.運用卷積神經網路完成mnist資料集處理(40分)
# 1、導包
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data
# 2、加載資料
mnist=input_data.read_data_sets('mnist_data')
x_data=mnist.train.images
y_data=mnist.train.labels
# 3、設定超引數
width=28
height=28
# 4、定義卷積占位符
x=tf.placeholder(tf.float32,shape=[None,height*width])
y=tf.placeholder(tf.int32,shape=[None])
x_img=tf.reshape(x,[-1,width,height,1])
# 5、設定第一層權重,卷積,池化層
w1=tf.Variable(tf.random_normal([3,3,1,16]))
l1=tf.nn.conv2d(x_img,w1,strides=[1,1,1,1],padding='SAME')
l1=tf.nn.relu(l1)
l1=tf.nn.max_pool(l1,ksize=[1,2,2,1],strides=[1,2,2,1],padding='VALID')
# 6、設定第二層卷積,權重,池化層
w2=tf.Variable(tf.random_normal([3,3,16,32]))
l2=tf.nn.conv2d(l1,w2,strides=[1,1,1,1],padding='SAME')
l2=tf.nn.relu(l2)
l2=tf.nn.max_pool(l2,ksize=[1,2,2,1],strides=[1,2,2,1],padding='VALID')

dim=l2.get_shape()[1].value*l2.get_shape()[2].value*l2.get_shape()[3].value
l2_flat=tf.reshape(l2,[-1,dim])
# 7、設定全連接層
w3=tf.Variable(tf.random_normal([dim,100],stddev=0.01))
b3=tf.Variable(tf.random_normal([100]))
logit1=tf.matmul(l2_flat,w3)+b3

w4=tf.Variable(tf.random_normal([100,10],stddev=0.01))
b4=tf.Variable(tf.random_normal([10]))
logit2=tf.matmul(logit1,w4)+b4

# 8、設定代價函式,設定精度函式
cost=tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit2,labels=y))
optimiter=tf.train.AdamOptimizer(learning_rate=0.001).minimize(cost)

correct=tf.nn.in_top_k(logit2,y,1)#每個樣本的預測結果的前k個最大的數里面是否包含targets預測中的標簽
accuracy=tf.reduce_mean(tf.cast(correct,tf.float32))
# y_true=tf.argmax(y,1)
# y_predict=tf.argmax(logit2,1)
# accuracy=tf.reduce_mean(tf.cast(tf.equal(y_true,y_predict),tf.float32))
# 9、小批量梯度下降訓練模型
sess=tf.Session()
sess.run(tf.global_variables_initializer())
batch_size=100
train_count=15
ls=[]
for epo in range(train_count):
    avg_cost=0
    total_batch=mnist.train.num_examples//batch_size
    for i in range(total_batch):
        batch_x,batch_y=mnist.train.next_batch(batch_size)
        cost_val,_,acc=sess.run([cost,optimiter,accuracy],feed_dict={x:batch_x,y:batch_y})
        avg_cost+=cost_val/total_batch
    ls.append(avg_cost)
    print('epo:',epo,'代價值:',avg_cost)

# 10、輸出精度與代價
acc_v=sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})
print(acc_v)
plt.plot(ls)
plt.show()

在這里插入圖片描述

3. 用回圈神經網路完成mnist資料集處理

方法一:

# 2.處理回圈神經網路完成mnist資料集處理(30分)
# 1、導包
import tensorflow as tf
from tensorflow.contrib.layers import fully_connected
from tensorflow.contrib.seq2seq import sequence_loss
from tensorflow.examples.tutorials.mnist import input_data
import matplotlib.pyplot as plt
# 2、加載資料
mnist=input_data.read_data_sets('mnist_data')
x_data=mnist.train.images
y_data=mnist.train.labels
# 3、設定超引數
n_input=28
steps=28
hidden_size=10
output_layer=10
# 4、占位符
x=tf.placeholder(tf.float32,shape=[None,steps,n_input])
y=tf.placeholder(tf.int32,shape=[None])
# 5、設定基礎回圈神經單元
# cell=tf.nn.rnn_cell.BasicRNNCell(num_units=hidden_size)
#cell=tf.nn.rnn_cell.BasicLSTMCell(num_units=hidden_size)
lstm_cell=[tf.nn.rnn_cell.LSTMCell(num_units=hidden_size) for layer in range(n_layers)]#10為隱藏層數
multi_cell=tf.nn.rnn_cell.MultiRNNCell(lstm_cell)
# 6、設定動態回圈神經網路
outputs,states=tf.nn.dynamic_rnn(multi_cell,x,dtype=tf.float32)
# 7、全連接層
logit=fully_connected(outputs[:,-1],output_layer,activation_fn=None)
#代價函式和優化器
cost=tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit,labels=y))
optimiter=tf.train.AdamOptimizer(learning_rate=0.01).minimize(cost)
# 8、設定精度
correct=tf.nn.in_top_k(logit,y,1)
accuracy=tf.reduce_mean(tf.cast(correct,tf.float32))
# 9、小批量梯度下降訓練模型
batch_size=100
train_count=10
ls=[]
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for epo in range(train_count):
        avg_cost=0
        total_batch=mnist.train.num_examples//batch_size
        for i in range(total_batch):
            batch_x,batch_y=mnist.train.next_batch(batch_size)
            batch_x=batch_x.reshape([-1,28,28])
            cost_val,_,acc=sess.run([cost,optimiter,accuracy],feed_dict={x:batch_x,y:batch_y})
            avg_cost+=cost_val/total_batch
        ls.append(avg_cost)
        print('epo:',epo,'代價值:',avg_cost,acc)
        acc_train=accuracy.eval(feed_dict={x:batch_x,y:batch_y})
        print('acc_train',acc_train)
        acc_test=sess.run(accuracy,feed_dict={x:mnist.test.images.reshape([-1,28,28]),y:mnist.test.labels})
        print('acc_test',acc_test)

# 10.輸出精度,代價函式
plt.plot(ls)
plt.show()

方法二:

import tensorflow as tf
from tensorflow.contrib.layers import fully_connected
from tensorflow.contrib.seq2seq import sequence_loss
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
import random
# 在tensorflow中,用回圈神經網路多層LSTM方式實作mnist手寫數字識別,
# 1.讀取資料(8分)
mnist=input_data.read_data_sets('mnist_data',one_hot=True)
x_data=mnist.train.images
y_data=mnist.train.labels
# 2.定義所有引數(8分)
n_inputs=28
n_steps=28
hidden_size=10
layers=4
n_outputs=10
# 3.設定占位符(8分)
x=tf.placeholder(tf.float32,shape=[None,n_steps,n_inputs])
y=tf.placeholder(tf.int32,shape=[None,None])
# 4.建立LSTMCell(8分)
cell=[tf.nn.rnn_cell.LSTMCell(num_units=hidden_size) for layer in range(layers)]
# 5.堆疊多層LSTMCell(8分)
multi_cell=tf.nn.rnn_cell.MultiRNNCell(cell)
outpus,states=tf.nn.dynamic_rnn(multi_cell,x,dtype=tf.float32)
# 6.建立全連接層(8分)
logits=fully_connected(outpus[:,-1],n_outputs,activation_fn=None)
# 7.計算代價或損失函式(8分)
cost=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=logits,labels=y))
optimiter=tf.train.AdamOptimizer(learning_rate=0.01).minimize(cost)
# 8.設定準確率模型(8分)
y_true=tf.argmax(y,1)
y_predict=tf.argmax(logits,1)
accuracy=tf.reduce_mean(tf.cast(tf.equal(y_true,y_predict),tf.float32))
# correct=tf.nn.in_top_k(logits,y,1)
# accuracy=tf.reduce_mean(tf.cast(correct,tf.float32))
# 9.用訓練集資料一共訓練迭代5次(8分)
train_count=5
batch_size=100
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for epo in range(train_count):
        avg_cost=0
        total_batch=mnist.train.num_examples//batch_size
# 10.分批次訓練,每批100個訓練樣本(8分)
        for i in range(batch_size):
            batch_x,batch_y=mnist.train.next_batch(batch_size)
            batch_x=batch_x.reshape([-1,n_steps,n_inputs])
# 11.輸出訓練集的準確率(6分)
            cost_val,_,acc=sess.run([cost,optimiter,accuracy],feed_dict={x:batch_x,y:batch_y})
            avg_cost+=cost_val/total_batch
        print(epo,avg_cost,acc)
    acc_train=accuracy.eval(feed_dict={x:batch_x,y:batch_y})
    print(acc_train)
# 12.輸出測驗集的準確率(6分)
    acc_test = accuracy.eval(feed_dict={x: batch_x, y: batch_y})
    print(acc_test)
# 13.從測驗集里抽一個樣本進行驗證(8分)
    r=random.randint(0,mnist.test.num_examples-1)
    label = sess.run(tf.argmax(mnist.test.labels[r:r + 1], axis=2))
    predict=sess.run(tf.argmax(logits,2),feed_dict={x:mnist.test.images[r:r+1]})
    print(label,predict)

sess=tf.Session()
sess.run(tf.global_variables_initializer())
for epo in range(train_count):
    avg_cost=0
    total_batch=mnist.train.num_examples//batch_size
    for i in range(batch_size):
        batch_x,batch_y=mnist.train.next_batch(batch_size)
        batch_x=batch_x.reshape([-1,n_steps,n_inputs])
        cost_val,_=sess.run([cost,optimiter],feed_dict={x:batch_x,y:batch_y})
        avg_cost+=cost_val/total_batch
    acc_train = sess.run(accuracy,feed_dict={x: batch_x, y: batch_y})
    print(epo,avg_cost,'acc_train',acc_train)

acc_test=sess.run(accuracy,feed_dict={x:mnist.test.images.reshape([-1,n_steps,n_inputs]),y:mnist.test.labels})
print('acc_test',acc_test)

在這里插入圖片描述
注意:方法一和方法二只在引數上做了修改,兩種方法效果一樣,
**兩種方法區別:**只在引數上做了調整

方法一:
mnist=input_data.read_data_sets('mnist_data')
y=tf.placeholder(tf.int32,shape=[None,None])
cost=tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logit,labels=y))
correct=tf.nn.in_top_k(logit,y,1)
accuracy=tf.reduce_mean(tf.cast(correct,tf.float32))
方法二:
mnist=input_data.read_data_sets('mnist_data',one_hot=True)
y=tf.placeholder(tf.int32,shape=[None,None])
y_true=tf.argmax(y,1)
y_predict=tf.argmax(logits,1)
accuracy=tf.reduce_mean(tf.cast(tf.equal(y_true,y_predict),tf.float32))

4.總結

4.1 小批量訓練的兩種方法:

方法一:
train_count=5
batch_size=100
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    for epo in range(train_count):
        avg_cost=0
        total_batch=mnist.train.num_examples//batch_size
        for i in range(batch_size):
            batch_x,batch_y=mnist.train.next_batch(batch_size)
            batch_x=batch_x.reshape([-1,n_steps,n_inputs])
cost_val,_,acc=sess.run([cost,optimiter,accuracy],feed_dict={x:batch_x,y:batch_y})
            avg_cost+=cost_val/total_batch
        print(epo,avg_cost,acc)
    acc_train=accuracy.eval(feed_dict={x:batch_x,y:batch_y})
    print(acc_train)
    acc_test = accuracy.eval(feed_dict={x: batch_x, y: batch_y})
    print(acc_test)
方法二:
sess=tf.Session()
sess.run(tf.global_variables_initializer())
for epo in range(train_count):
    avg_cost=0
    total_batch=mnist.train.num_examples//batch_size
    for i in range(batch_size):
        batch_x,batch_y=mnist.train.next_batch(batch_size)
        batch_x=batch_x.reshape([-1,n_steps,n_inputs])
        cost_val,_=sess.run([cost,optimiter],feed_dict={x:batch_x,y:batch_y})
        avg_cost+=cost_val/total_batch
    acc_train = sess.run(accuracy,feed_dict={x: batch_x, y: batch_y})
    print(epo,avg_cost,'acc_train',acc_train)

acc_test=sess.run(accuracy,feed_dict={x:mnist.test.images.reshape([-1,n_steps,n_inputs]),y:mnist.test.labels})
print('acc_test',acc_test)

4.2 隨機從測驗集里抽一個樣本進行驗證

隨機從測驗集里抽一個樣本進行驗證
r=random.randint(0,mnist.test.num_examples-1)
label = sess.run(tf.argmax(mnist.test.labels[r:r + 1], axis=2))
predict=sess.run(tf.argmax(logits,2),feed_dict={x:mnist.test.images[r:r+1]})
print(label,predict)

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

標籤:AI

上一篇:人人都是 Serverless 架構師 | 現代化 Web 應用開發實戰

下一篇:NiN網路詳解

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