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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Tensorflow实现简单线性回归

發布時間:2025/3/15 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Tensorflow实现简单线性回归 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

針對波士頓房價數據集采用簡單線性回歸,預測最后一列給出的房價
波士頓房價數據集可從http://lib.stat.cmu.edu/datasets/boston處獲取。

實現簡單線性回歸的具體做法

1:導入所需要的軟件包
2:在神經網絡中,所有的輸入都線性增加,為了使訓練有效,輸入應該被歸一化,所以這里定義一個函數來歸一化輸入數據
3:加載波士頓房價數據集,將其分解為X_train和Y_train,并對數據進行歸一化處理
4:為訓練數據聲明Tensorflow占位符
5:創建Tensorflow的權重和偏置變量且初始化值為0
6:定義用于預測的線性回歸模型
7:定義損失函數
8:選擇梯度下降優化器
9:聲明初始化操作符
10:開始計算圖
11:查看結果

代碼如下

#1:導入所需軟件包 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_boston#2:在神經網絡中,所有輸入都線性增加,為了使訓練有效,輸入應該被歸一化 #定義函數來歸一化輸入數據tf.compat.v1.disable_eager_execution()def normalize(X):''' Normalizes the array X'''mean = np.mean(X)std = np.std(X)X = (X-mean)/stdreturn X #3:加載波士頓數據集 #,并將其分解為X_train,Y_train 可以對數據進行歸一化處理boston = load_boston() X_train,Y_train = boston.data[:,5],boston.target X_train = normalize(X_train) n_samples = len(X_train) #4:為訓練數據聲明Tensroflow占位符 X = tf.compat.v1.placeholder(tf.float32,name='X') Y = tf.compat.v1.placeholder(tf.float32,name='Y')#5:創建Tensorflow的權重和偏置變量且初始化為0 b = tf.compat.v1.Variable(0.0) w = tf.compat.v1.Variable(0.0)#6:定義用于預測的線性回歸模型 Y_hat = X*w+b #7:定義損失函數 loss = tf.compat.v1.square(Y-Y_hat,name='loss')#8:選擇梯度下降優化器 optimizer =tf.compat.v1.train.GradientDescentOptimizer(learning_rate=0.01).minimize(loss)#9:聲明初始化操作符 init_op = tf.compat.v1.global_variables_initializer() total = []#10 開始計算圖,訓練100次 with tf.compat.v1.Session() as sess:sess.run(init_op)writer = tf.compat.v1.summary.FileWriter('graphs',sess.graph)for i in range(100):total_loss = 0for x,y in zip(X_train,Y_train):l = sess.run([optimizer,loss],feed_dict={X:x,Y:y})total_loss+=1total.append(total_loss/n_samples)print('Epoch {0}:Loss {1}'.format(i,total_loss/n_samples))writer.close()b_value,w_value = sess.run([b,w])#11:查看結果Y_pred = X_train*w_value+b_valueprint('Done')plt.plot(X_train,Y_train,'bo',label = 'Real Data')plt.plot(X_train,Y_pred,'r',label = 'Predicted Data')plt.legend()plt.show()plt.plot(total)plt.show()

最后結果

總結

以上是生活随笔為你收集整理的使用Tensorflow实现简单线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。