日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8.2 TensorFlow实现KNN与TensorFlow中的损失函数,优化函数

發(fā)布時(shí)間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8.2 TensorFlow实现KNN与TensorFlow中的损失函数,优化函数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

8.1 mnist_soft,TensorFlow構(gòu)建回歸模型中對(duì)主要對(duì)計(jì)算圖的概念與公式與計(jì)算圖的轉(zhuǎn)化進(jìn)行了介紹,8.2則主要介紹一下TensorFlow中自帶的幾個(gè)算子,與優(yōu)化函數(shù),損失函數(shù)的定義,并以KNN的例子進(jìn)行整體的串聯(lián).

加載數(shù)據(jù),依舊使用mnist手寫數(shù)字的數(shù)據(jù)

# 導(dǎo)入數(shù)據(jù) from tensorflow.contrib.learn.python.learn.datasets import mnist FLAGS = Nonedata_sets = mnist.read_data_sets('/home/fonttian/Data/MNIST_data/',one_hot=True)# 我們對(duì)mnist的數(shù)據(jù)集做一個(gè)數(shù)量限制 Xtrain,Ytrain = data_sets.train.next_batch(5000) # 5000 用于訓(xùn)練 Xtest,Ytest = data_sets.test.next_batch(200) # 200 用于測試 print('Xtrain.shape: ',Xtrain.shape,'Xtest.shape: ',Xtest.shape) print('Ytrain.shape: ',Ytrain.shape,'Ytest.shape: ',Ytest.shape)

KNN的實(shí)現(xiàn)

  • 計(jì)算數(shù)據(jù)的L1距離
  • 尋找最小距離的數(shù)據(jù)標(biāo)簽,確定其為類別
    由上可知,我們僅僅實(shí)現(xiàn)了一個(gè)幾乎算是最原始的KNN算法,但是無妨于我們的演示,你要是想練習(xí)的話可以寫的復(fù)雜一點(diǎn),但是實(shí)際使用還是使用skleran吧.
    核心代碼如下:
  • # 使用L1距離進(jìn)行最近鄰近算 # 計(jì)算L1 距離 distance = tf.reduce_sum(tf.abs(tf.add(xtrain,tf.negative(xtest))),axis=1) # 預(yù)測; 獲得最小距離的索引(根據(jù)最近鄰的類標(biāo)簽進(jìn)行判斷 pred = tf.argmin(distance,0) # 評(píng)估: 判斷給定的一條測試數(shù)據(jù)是否判斷正確
    • tf.negative() :取相反數(shù)
    • tf.abs():取絕對(duì)值
    • tf.argmin():返回最小值的索引

    啟動(dòng)session并運(yùn)行

    # 啟動(dòng)會(huì)話 with tf.Session() as sess:# 初始化節(jié)點(diǎn)tf.global_variables_initializer().run()Ntest = len(Xtest) # 測試樣本的數(shù)據(jù)# 在測試集上進(jìn)行循環(huán)for i in range(Ntest):# 獲取當(dāng)前測試樣本的最近鄰nn_index = sess.run(pred,feed_dict={xtrain:Xtrain,xtest:Xtest[i,:]})# 獲取最近鄰預(yù)測標(biāo)簽,然后與真實(shí)的類標(biāo)簽比較pred_class_label = np.argmax(Ytrain[nn_index])true_class_label = np.argmax(Ytest[i])print('Test',i,'Predicted Class Label:',pred_class_label,'True Class label:',true_class_label)# 計(jì)算準(zhǔn)確率if pred_class_label == true_class_label:accuracy += 1print('Done!')accuracy /= Ntestprint('Accuracy:',accuracy)

    中場休息

    由上我們已經(jīng)實(shí)現(xiàn)了一個(gè)TensorFlow版本的KNN,但是KNN本來就簡單到了很多類庫可以很隨意的實(shí)現(xiàn),那么TensorFlow的特殊之處又在哪里呢?有二
    1. 計(jì)算圖式的計(jì)算方式,
    2. 因?yàn)槭怯?jì)算圖的形式運(yùn)算,所以必須使用TensorFlow自帶的函數(shù)進(jìn)行運(yùn)算,還在TensorFlow還提供了部分基礎(chǔ)運(yùn)算符號(hào),比如”+”,”-“等運(yùn)算符號(hào),其也可以代替TensorFlow的運(yùn)算函數(shù)tf.add(),和tf.subtract()
    但是其實(shí)我們真正經(jīng)常使用的TensorFlow自帶的運(yùn)算函數(shù)并不多,除了上面的幾個(gè)函數(shù)外,最常用的恐怕就是tf.matmul()了吧,這個(gè)函數(shù)是乘法的函數(shù),在神經(jīng)網(wǎng)絡(luò)的全連接中我們經(jīng)常用到這個(gè)函數(shù).其他的函數(shù)因?yàn)檫\(yùn)用并不多,所以此處不在過多敘述.

    KNN所沒有用到的

    KNN相較于其它很多算法一個(gè)很不明顯不同的地方就是可以通過已有數(shù)據(jù)計(jì)算出結(jié)果,而無需進(jìn)行訓(xùn)練和降低預(yù)測誤差的反向傳播過程,但是在現(xiàn)在的深度學(xué)習(xí)中這個(gè)過程則是必然存在的,所以反向傳播的過程則是必然的.而TensorFlow的一個(gè)強(qiáng)大之處,就在于此處,對(duì)反向傳播的自動(dòng)求導(dǎo),依靠計(jì)算圖的機(jī)制,在我們使用TensorFlow進(jìn)行深度學(xué)習(xí)的開發(fā)之時(shí),只需要簡單的定義損失函數(shù)以及通過一行簡簡單單的代碼,選擇要進(jìn)行優(yōu)化的損失函數(shù)之后,TensorFlow就可以對(duì)損失函數(shù)進(jìn)行自動(dòng)求導(dǎo),訓(xùn)練我們所構(gòu)建的計(jì)算圖.

    定義損失函數(shù)與優(yōu)化損失函數(shù)

    我們以之前8.1 中的代碼為例子:

    # 此處就是定義我們的損失函數(shù), # Define loss and optimizercross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_, logits=y))# 我們通過下面的代碼添加我們的損失函數(shù) train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

    另外一個(gè)BP神經(jīng)網(wǎng)絡(luò)的例子

    # 接下來構(gòu)建損失函數(shù): 計(jì)算輸出層的預(yù)測值和真是值間的誤差,對(duì)于兩者差的平方求和,再取平均,得到損失函數(shù).運(yùn)用梯度下降法,以0.1的效率最小化損失 loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys - prediction), reduction_indices=[1]))train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss) # 優(yōu)化算法選取SGD,隨機(jī)梯度下降

    至此,通過TensorFlow基礎(chǔ)篇前八章的例子,你已經(jīng)基本上手了TensorFlow

    而在8.3 TensorFlow BP神經(jīng)網(wǎng)絡(luò)構(gòu)建與超參數(shù)的選取中我將會(huì)給出上面的BP神經(jīng)網(wǎng)絡(luò)的完整代碼.其實(shí)現(xiàn)在,你可以試著用TensorFlow自己構(gòu)建一個(gè)自己的神經(jīng)網(wǎng)絡(luò)了,祝好遠(yuǎn).

    總結(jié)

    以上是生活随笔為你收集整理的8.2 TensorFlow实现KNN与TensorFlow中的损失函数,优化函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美在线激情 | av三级在线播放 | 亚洲av无码不卡一区二区三区 | 亚洲激情六月 | 国产精品久久久久久久久晋中 | ass亚洲肉体欣赏pics | 久久er99热精品一区二区 | 天天看片天天操 | av在线a | 夜夜嗨网站 | 熟女人妻在线视频 | 中文资源在线观看 | 日本加勒比一区二区 | 国精产品99永久一区一区 | 久久久久人妻一区二区三区 | 小泽玛利亚在线 | 国产极品久久久 | 狠色综合7777夜色撩人 | 色乱码一区二区三区网站 | 日韩精品免费在线 | 亚洲熟女一区 | 午夜日韩电影 | 琪琪色在线观看 | 亚洲第九十七页 | 综合视频在线 | 一级美女视频 | 香蕉视频久久 | 寂寞人妻瑜伽被教练日 | 日本人妻一区 | 久久99精品久久久久 | 亚洲精品在线影院 | 午夜羞羞网站 | 台湾少妇xxxx做受 | 精品中文字幕一区二区三区 | 成人免费看高清电影在线观看 | 日韩成人在线免费观看 | 干爹你真棒插曲mv在线观看 | 日本日皮视频 | 九七人人爽 | 欧美大片免费高清观看 | 亚洲色图久久 | 九一av| 精彩久久| 超碰一区二区三区 | 亚洲欧洲日韩国产 | 成人日b视频 | 高h全肉污文play带道具 | 日韩一区二区三区四区五区六区 | 日韩精品区 | 精东传媒在线 | 午夜天堂精品 | h片免费观看 | av免费片| 91高清在线 | 国产一级片免费播放 | 成人无遮挡 | 国产视频一区二区在线观看 | 女人张开腿让男人桶爽 | 超黄网站在线观看 | 中文字幕乱码av | 亚洲宗人网 | 神马午夜888 | 亚洲免费黄色网 | 少妇人妻无码专区视频 | 91网站在线免费看 | 国产一区二区成人 | 欧美黑人巨大xxx极品 | 亚洲精品视频91 | 成人作爱视频 | 国产强被迫伦姧在线观看无码 | 精品日韩av| 91 高清 在线 制服 偷拍 | 亚洲欧洲久久 | 激情五月av | 国产有码视频 | 日韩欧美亚洲国产精品字幕久久久 | 男男毛片 | 欧美中文字幕在线 | 91浏览器在线观看 | www.操.com| 99热6这里只有精品 三级av在线免费观看 | 中文字幕在线免费视频 | 成人污在线观看 | 久草免费福利视频 | 波多野结衣一本一道 | 婷婷四月 | 久久久久亚洲精品系列色欲 | 图片区亚洲色图 | 亚洲精品水蜜桃 | 一区黄色 | 啪啪短视频 | jzzijzzij日本成熟少妇 | 97国产在线播放 | 亚洲看片| 亚洲乱淫| 一区二区三区网 | 探花国产精品一区二区 | 精品少妇一区二区三区在线观看 | 久久久久麻豆 |