国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

tensorflow 自定義損失函數示例代碼

2020-02-15 21:23:54
字體:
來源:轉載
供稿:網友

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

我們現在想要做一個回歸,來預估某個商品的銷量,現在我們知道,一件商品的成本是1元,售價是10元。

如果我們用均方差來算的話,如果預估多一個,則損失一塊錢,預估少一個,則損失9元錢(少賺的)。

顯然,我寧愿預估多了,也不想預估少了。

所以,我們就自己定義一個損失函數,用來分段地看,當yhat 比 y大時怎么樣,當yhat比y小時怎么樣。

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

import tensorflow as tffrom numpy.random import RandomStatebatch_size = 8# 兩個輸入節點x = tf.placeholder(tf.float32, shape=(None, 2), name="x-input")# 回歸問題一般只有一個輸出節點y_ = tf.placeholder(tf.float32, shape=(None, 1), name="y-input")# 定義了一個單層的神經網絡前向傳播的過程,這里就是簡單加權和w1 = tf.Variable(tf.random_normal([2, 1], stddev=1, seed=1))y = tf.matmul(x, w1)# 定義預測多了和預測少了的成本loss_less = 10loss_more = 1#在windows下,下面用這個where替代,因為調用tf.select會報錯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)#通過隨機數生成一個模擬數據集rdm = RandomState(1)dataset_size = 128X = rdm.rand(dataset_size, 2)"""設置回歸的正確值為兩個輸入的和加上一個隨機量,之所以要加上一個隨機量是為了加入不可預測的噪音,否則不同損失函數的意義就不大了,因為不同損失函數都會在能完全預測正確的時候最低。一般來說,噪音為一個均值為0的小量,所以這里的噪音設置為-0.05, 0.05的隨機數。"""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]

最終結果如上面所示。

因為我們當初生成訓練數據的時候,y是x1 + x2,所以回歸結果應該是1,1才對。
但是,由于我們加了自己定義的損失函數,所以,傾向于預估多一點。

如果,我們將loss_less和loss_more對調,我們看一下結果:

[[ 0.95525807][ 0.9813394 ]]

通過這個例子,我們可以看出,對于相同的神經網絡,不同的損失函數會對訓練出來的模型產生重要的影響。

引用:以上實例為《Tensorflow實戰 Google深度學習框架》中提供。

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瑞丽市| 樟树市| 金华市| 东阿县| 安化县| 根河市| 天柱县| 喀喇沁旗| 江安县| 南开区| 桂阳县| 宣汉县| 老河口市| 临潭县| 屏东县| 乐亭县| 娱乐| 平泉县| 滨海县| 巴里| 吴江市| 尖扎县| 合肥市| 奉节县| 晋宁县| 涞源县| 阳泉市| 涟水县| 章丘市| 筠连县| 遂溪县| 海口市| 湄潭县| 浪卡子县| 遂川县| 吉木萨尔县| 长岭县| 大名县| 扎鲁特旗| 贵溪市| 洞口县|