91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 12.75MB
    文件類型: .gz
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-10
  • 語言: Python
  • 標簽: tensorflow??python??

資源簡介

用python寫的tensorflow框架下數碼管的識別方法,包含訓練代碼和測試代碼,可直接利用模型進行檢測,如果效果不好,可以自己構建數據集訓練

資源截圖

代碼片段和文件信息


#?coding:?utf-8

#?##?導入各種依賴庫
#?因為此目錄下已經有訓練好的模型,可以直接到最后一個代碼塊運行,無需額外訓練,如果與實際應用情況存在偏差,請添加數據集進行再次訓練
#?
#?沒有的模塊進行安裝
#?‘‘‘?bash
#?pip?install?modual
#?‘‘‘

#?In[2]:


import?tensorflow?as?tf
import?gzip
import?os
import?tempfile
import?cv2
import?random
import?numpy?as?np


#?##?生成數據集格式

#?###?train?data

#?In[3]:


#導入數據圖片,以features命名
imgs=os.listdir(‘./datasets/train/imgs/‘)
#?定義一個排序函數
def?nu_str(string):
????return?int(string.split(‘.‘)[0])
#?將文件夾中的文件按照名稱數字大小進行排序?能夠與labels一一對應
imgs.sort(key=nu_str)
features_train=[]
#?對每一張圖片進行處理,主要是將矩陣轉化為一個向量,最后將所有圖片打包
for?i?in?imgs:
????img=cv2.imread(‘./datasets/train/imgs/‘+str(i)0)
????#resimg=cv2.threshold(img?200?255?cv2.THRESH_BINARY)
????#img=cv2.copyMakeBorder(img5555cv2.BORDER_CONSTANTvalue=0)
????#cv2.imshow(‘3‘img)
????#cv2.waitKey(100)
????img=img.reshape(28*28)/255
????features_train.append(img)
features_train=np.array(features_train)?#?包含所有圖片的一個向量集


#?In[4]:


##?將每一個圖片對應的結果轉化為one-hot形式儲存
#?讀取文件所有內容
with?open(‘./datasets/train/targets/target.txt‘‘r‘)?as?f:
????tars=f.readlines()
#?向量不同位置對應的結果
tar_temp=[0123456789‘.‘]
labels_train=[]
#?構造one-hot形式的向量集
for?i?in?tars:
????b=np.array([i[0]==str(tar_temp[j])?for?j?in?range(len(tar_temp))])+0
????labels_train.append(b)??#?一個包含所有結果的向量集(與圖片集一一對應)


#?###?驗證數據集的正確性

#?In[5]:


#?選擇運行
#?查看數據集與結果是否一一對應,主要看看顯示的圖片和打印的數字是否一致

for?i?in?range(len(features_train)):
????cv2.imshow(‘feature‘features_train[i].reshape(2828))
????print(np.argmax(labels_train[i]))
????cv2.waitKey(500)?#?單張圖片的顯示時間ms


#?###?test?data

#?In[6]:


#?生成測試數據集,同訓練集一樣

imgs=os.listdir(‘./datasets/test/imgs/‘)
def?nu_str(string):
????return?int(string.split(‘.‘)[0])
imgs.sort(key=nu_str)
features_test=[]
for?i?in?imgs:
????img=cv2.imread(‘./datasets/test/imgs/‘+str(i)0)
????#resimg=cv2.threshold(img?200?255?cv2.THRESH_BINARY)
????#img=cv2.copyMakeBorder(img5555cv2.BORDER_CONSTANTvalue=0)
????#cv2.imshow(‘3‘img)
????#cv2.waitKey(100)
????img=img.reshape(28*28)/255
????features_test.append(img)
features_test=np.array(features_test)


#?In[7]:


with?open(‘./datasets/test/targets/target.txt‘‘r‘)?as?f:
????tars=f.readlines()
tar_temp=[0123456789‘.‘]
labels_test=[]
for?i?in?tars:
????b=np.array([i[0]==str(tar_temp[j])?for?j?in?range(len(tar_temp))])+0
????labels_test.append(b)


#?In[8]:


#?查看測試訓練集的正確性??可以跳過
for?i?in?range(len(features_test)):
????cv2.imshow(‘feature‘features_test[i].reshape(2828))
????print(np.argmax(labels_test[i]))
????cv2.waitKey(500)


#?##?線性訓練
#?這個訓練結果太差,忽略

#?###?train?
#?忽略?不需要運行

#?In[9]:


sess?=?tf.Session()
#?設置放置自變量的空間(圖片輸入的)
x=tf.placeholder(“float“[None28*28])
#?設置權重以及偏置的變量空間
W=tf.Variable(tf.zeros([28*2811]))
b=tf.Variable(tf.zeros([11]))
#?計算特定權重偏置下的結果
y=tf.nn.softmax(tf.matmul(xW)+b)
#?設置儲存實際結果的空間
y_=tf.placeholder(“float“[None11])
#?計算預測與實際的交叉熵
cross_entropy=-tf.reduce_sum(y_*tf.log(y))
#?訓練?通過使得交叉熵向減小的方向
train_step=tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
#?初始化變量
init?=?tf.initialize_

評論

共有 條評論