第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)手寫數(shù)字識(shí)別(吳恩達(dá)課程Octave代碼用python實(shí)現(xiàn))

標(biāo)簽:
Python

神经网络实现手写数字识别

实例:利用神经网络实现手写数字的识别,网络已经训练好,权重参数已给出。

1.载入数据和权重

由于给出了权重的参数,即神经网络已经训练好了,我们直接拿权重对现有的图片进行预测。

载入输入数据:
参考代码:

def loadData(self, path):
       self.data = scio.loadmat(path)
       self.x = self.data["X"]  # (5000, 400)  # 原100训练
       self.y = self.data["y"]  # (5000, 1)
       index = random.sample([i for i in range(5000)], 100)  # 随机100个没有重复的数字
       self.pics = self.x[index, :]  # (100, 400)

载入权重参数
参考代码:

def loadWeights(self, path):
       weights = scio.loadmat(path)
       self.theta1 = weights['Theta1']  # 25*401
       self.theta2 = weights['Theta2']  # 10*26
2.神经网络构建

神经网络共3层,输入层,1层隐藏层,输出层:输入层401个输入(第1个为1), 隐藏层26个单元,输出层10个单元(对应着0-9),如下图

webp

在这里插入图片描述


3.对全部数据进行准确率验证

利用吴老师训练好的结果,进行验证,准确率97.52%。

参考代码:

def predictNN(self):
       x = np.hstack([np.ones((self.x.shape[0], 1)), self.x])  # 5000*401
       x1 = self.sigmoid(x.dot(self.theta1.T))  # (5000, 401)*(401, 25)

       x1_mid = np.hstack([np.ones((x1.shape[0], 1)), x1])
       x2 = self.sigmoid(x1_mid.dot(self.theta2.T))  # (5000, 26)*(26, 10)
       position = np.argmax(x2, axis=1) + 1   # 预测值
       accuracy = np.mean(position.reshape(5000, 1) == self.y) * 100
       print("神经网络准确率是:{}".format(accuracy))  # 97.52%
4.随机抽出一张图片,对图片中的数字进行验证

从5000张图片中随机抽取一张,利用神经网络计算得到预测结果。将预测结果做成图片的title进行显示,关闭图片后,提示若继续验证,请按回车;退出请按q键,展示两次的预测结果,可以看到已准确识别!

webp

预测7

webp

预测5


参考代码:


def predictOne(self, image):
       x = np.hstack([np.ones((image.shape[0], 1)), image])  # 1*401
       x1 = self.sigmoid(x.dot(self.theta1.T))  # (1, 401)*(401, 25)

       x1_mid = np.hstack([np.ones((x1.shape[0], 1)), x1])
       x2 = self.sigmoid(x1_mid.dot(self.theta2.T))  # (1, 26)*(26, 10)

       position = np.argmax(x2, axis=1) + 1
       return position       
def displayTestPics(self, image):
       max_val = np.max(np.abs(image))
       im = image.reshape((20, 20)).transpose()/max_val*255
       predict_result = self.predictOne(image)
       plt.xticks([])
       plt.yticks([])       # 由于0用10表示,为了显示准确,取了余数.
       plt.title("The Prediction Result is {}!".format(np.mod(predict_result[0], 10)), color='r', fontsize=20)
       plt.imshow(im, cmap='gray')
       plt.show()



作者:Damon0626
链接:https://www.jianshu.com/p/69fe0f644082


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消