最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

tensorflow 自定義損失函數(shù)示例代碼

 更新時(shí)間:2020年02月05日 10:32:15   作者:陳闊  
這篇文章主要介紹了tensorflow 自定義損失函數(shù)示例,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

這個(gè)自定義損失函數(shù)的背景:(一般回歸用的損失函數(shù)是MSE, 但要看實(shí)際遇到的情況而有所改變)

我們現(xiàn)在想要做一個(gè)回歸,來(lái)預(yù)估某個(gè)商品的銷(xiāo)量,現(xiàn)在我們知道,一件商品的成本是1元,售價(jià)是10元。

如果我們用均方差來(lái)算的話,如果預(yù)估多一個(gè),則損失一塊錢(qián),預(yù)估少一個(gè),則損失9元錢(qián)(少賺的)。

顯然,我寧愿預(yù)估多了,也不想預(yù)估少了。

所以,我們就自己定義一個(gè)損失函數(shù),用來(lái)分段地看,當(dāng)yhat 比 y大時(shí)怎么樣,當(dāng)yhat比y小時(shí)怎么樣。

(yhat沿用吳恩達(dá)課堂中的叫法)

import tensorflow as tf
from numpy.random import RandomState
batch_size = 8
# 兩個(gè)輸入節(jié)點(diǎn)
x = tf.placeholder(tf.float32, shape=(None, 2), name="x-input")
# 回歸問(wèn)題一般只有一個(gè)輸出節(jié)點(diǎn)
y_ = tf.placeholder(tf.float32, shape=(None, 1), name="y-input")
# 定義了一個(gè)單層的神經(jīng)網(wǎng)絡(luò)前向傳播的過(guò)程,這里就是簡(jiǎn)單加權(quán)和
w1 = tf.Variable(tf.random_normal([2, 1], stddev=1, seed=1))
y = tf.matmul(x, w1)
# 定義預(yù)測(cè)多了和預(yù)測(cè)少了的成本
loss_less = 10
loss_more = 1
#在windows下,下面用這個(gè)where替代,因?yàn)檎{(diào)用tf.select會(huì)報(bào)錯(cuò)
loss = tf.reduce_sum(tf.where(tf.greater(y, y_), (y - y_)*loss_more, (y_-y)*loss_less))
train_step = tf.train.AdamOptimizer(0.001).minimize(loss)
#通過(guò)隨機(jī)數(shù)生成一個(gè)模擬數(shù)據(jù)集
rdm = RandomState(1)
dataset_size = 128
X = rdm.rand(dataset_size, 2)
"""
設(shè)置回歸的正確值為兩個(gè)輸入的和加上一個(gè)隨機(jī)量,之所以要加上一個(gè)隨機(jī)量是
為了加入不可預(yù)測(cè)的噪音,否則不同損失函數(shù)的意義就不大了,因?yàn)椴煌瑩p失函數(shù)
都會(huì)在能完全預(yù)測(cè)正確的時(shí)候最低。一般來(lái)說(shuō),噪音為一個(gè)均值為0的小量,所以
這里的噪音設(shè)置為-0.05, 0.05的隨機(jī)數(shù)。
"""
Y = [[x1 + x2 + rdm.rand()/10.0-0.05] for (x1, x2) in X]
with tf.Session() as sess:
 init = tf.global_variables_initializer()
 sess.run(init)
 steps = 5000
 for i in range(steps):
  start = (i * batch_size) % dataset_size
  end = min(start + batch_size, dataset_size)
  sess.run(train_step, feed_dict={x:X[start:end], y_:Y[start:end]})
 print(sess.run(w1))

[[ 1.01934695]
[ 1.04280889]

最終結(jié)果如上面所示。

因?yàn)槲覀儺?dāng)初生成訓(xùn)練數(shù)據(jù)的時(shí)候,y是x1 + x2,所以回歸結(jié)果應(yīng)該是1,1才對(duì)。
但是,由于我們加了自己定義的損失函數(shù),所以,傾向于預(yù)估多一點(diǎn)。

如果,我們將loss_less和loss_more對(duì)調(diào),我們看一下結(jié)果:

[[ 0.95525807]
[ 0.9813394 ]]

通過(guò)這個(gè)例子,我們可以看出,對(duì)于相同的神經(jīng)網(wǎng)絡(luò),不同的損失函數(shù)會(huì)對(duì)訓(xùn)練出來(lái)的模型產(chǎn)生重要的影響。

引用:以上實(shí)例為《Tensorflow實(shí)戰(zhàn) Google深度學(xué)習(xí)框架》中提供。

總結(jié)

以上所述是小編給大家介紹的tensorflow 自定義損失函數(shù)示例,希望對(duì)大家有所幫助!

相關(guān)文章

  • python學(xué)習(xí)之hook鉤子的原理和使用

    python學(xué)習(xí)之hook鉤子的原理和使用

    這篇文章主要為大家詳細(xì)介紹了python學(xué)習(xí)之hook鉤子的原理和使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • python 爬取英雄聯(lián)盟皮膚并下載的示例

    python 爬取英雄聯(lián)盟皮膚并下載的示例

    這篇文章主要介紹了python 爬取英雄聯(lián)盟皮膚并下載的示例,幫助大家更好的理解和學(xué)習(xí)使用python 爬蟲(chóng),感興趣的朋友可以聊繼續(xù)
    2020-12-12
  • python常用的魔法方法(雙下劃線)

    python常用的魔法方法(雙下劃線)

    本文介紹一下python中常用的魔法方法以及面向?qū)ο笾蟹浅V匾膯卫J?。具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-09-09
  • Python?數(shù)據(jù)可視化超詳細(xì)講解折線圖的實(shí)現(xiàn)

    Python?數(shù)據(jù)可視化超詳細(xì)講解折線圖的實(shí)現(xiàn)

    數(shù)據(jù)可以幫助我們描述這個(gè)世界、闡釋自己的想法和展示自己的成果,但如果只有單調(diào)乏味的文本和數(shù)字,我們卻往往能難抓住觀眾的眼球。而很多時(shí)候,一張漂亮的可視化圖表就足以勝過(guò)千言萬(wàn)語(yǔ),讓我們來(lái)用Python實(shí)現(xiàn)一個(gè)可視化的折線圖
    2022-03-03
  • 一文教會(huì)你使用Python來(lái)下一場(chǎng)雪

    一文教會(huì)你使用Python來(lái)下一場(chǎng)雪

    這篇文章主要給大家介紹了關(guān)于使用Python來(lái)下一場(chǎng)雪的相關(guān)資料,文章描述了大雪緩緩下落的場(chǎng)景,并提供了完整的代碼示例,對(duì)大家學(xué)習(xí)或者使用python具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-11-11
  • 在win10和linux上分別安裝Python虛擬環(huán)境的方法步驟

    在win10和linux上分別安裝Python虛擬環(huán)境的方法步驟

    這篇文章主要介紹了在win10和linux上分別安裝Python虛擬環(huán)境的方法步驟,虛機(jī)環(huán)境有非常多的優(yōu)點(diǎn),今天我們用的虛擬環(huán)境是virtualenv。感興趣的小伙伴們可以參考一下
    2019-05-05
  • 進(jìn)一步探究Python中的正則表達(dá)式

    進(jìn)一步探究Python中的正則表達(dá)式

    這篇文章主要介紹了Python中的正則表達(dá)式的一些用法,正則表達(dá)式的使用是Python學(xué)習(xí)進(jìn)階中的重要知識(shí),需要的朋友可以參考下
    2015-04-04
  • Python-OpenCV實(shí)戰(zhàn):利用 KNN 算法識(shí)別手寫(xiě)數(shù)字

    Python-OpenCV實(shí)戰(zhàn):利用 KNN 算法識(shí)別手寫(xiě)數(shù)字

    K-最近鄰(KNN)是監(jiān)督學(xué)習(xí)中最簡(jiǎn)單的算法之一,KNN可用于分類(lèi)和回歸問(wèn)題。本文將為大家介紹的是通過(guò)KNN算法實(shí)現(xiàn)識(shí)別手寫(xiě)數(shù)字。文中的示例代碼介紹詳細(xì),需要的朋友可以參考一下
    2021-12-12
  • python-docx如何刪除所有bookmarks

    python-docx如何刪除所有bookmarks

    在Python-docx庫(kù)中,雖然沒(méi)有直接刪除書(shū)簽的功能,但可以通過(guò)操作XML元素,遍歷文檔結(jié)構(gòu)并刪除指定元素來(lái)實(shí)現(xiàn)刪除所有書(shū)簽的目的,首先要明白書(shū)簽在XML文件中的位置,然后利用Python-docx提供的element元素遍歷并刪除特定的書(shū)簽元素
    2024-09-09
  • Python圖像處理之圖像的讀取、顯示與保存操作【測(cè)試可用】

    Python圖像處理之圖像的讀取、顯示與保存操作【測(cè)試可用】

    這篇文章主要介紹了Python圖像處理之圖像的讀取、顯示與保存操作,結(jié)合實(shí)例形式分析了Python使用PIL模塊、scipy和matplotlib模塊進(jìn)行圖像讀寫(xiě)、顯示等相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01

最新評(píng)論

财经| 册亨县| 宽城| 乡城县| 电白县| 高要市| 黄骅市| 调兵山市| 湘潭市| 新源县| 遂川县| 朝阳区| 临猗县| 南雄市| 密山市| 南陵县| 砚山县| 丰县| 北碚区| 台南市| 页游| 金秀| 万安县| 奉新县| 沁水县| 米林县| 舒城县| 海口市| 江油市| 海南省| 报价| 嵊泗县| 大兴区| 白河县| 施秉县| 崇仁县| 沽源县| 常山县| 健康| 肃宁县| 陵川县|