使用TensorFlow進行線性回歸

2021-08-13 20:35:50 字數 1975 閱讀 8523

import numpy as np

import pandas as pd

from pandas import series,dataframe

from matplotlib import pyplot as plt

%matplotlib inline

#匯入tensorflow模組

import tensorflow as tf

x_train = np.linspace(0,10,num=20)+np.random.randn(20)

y_train = np.linspace(1,4,num=20)+np.random.randn(20)

n_samples = 20

由於是線性回歸,因此表示式可以表示為:f(x)=wx+b —-> y = wx+b

tensorflow的辦法是,使用x,y作為佔位符,並使用隨機的w,b

#建立x,y佔位符

x = tf.placeholder('float')

y = tf.placeholder('float')

#隨機生成乙個w,b,作為斜率和截距

w = tf.variable(np.random.randn())

b = tf.variable(np.random.randn())

#根據模擬線性方程得出**值

y_pre = w*x+b

#成本函式cost:是實際輸出和**輸出之間的方差,這也稱為最小二乘法。 

cost = tf.reduce_sum(tf.pow(y_pre-y,2))/n_samples

#learning_rate:學習率,是進行訓練時在最陡的梯度方向上所採取的「步」長;

learning_rate = 0.01

optimizer = tf.train.gradientdescentoptimizer(learning_rate).minimize(cost)

#tensorflow初始化

init = tf.global_variables_initializer()

#開始訓練

with tf.session() as sess:

#初始化

sess.run(init)

#訓練所有資料,50次迴圈

for epoch in range(50):

for (x,y) in zip(x_train,y_train):

#用真實值x,y代替佔位符x,y,每次迴圈都執行梯度下降演算法

sess.run(optimizer,feed_dict=)

#每執行50次顯示運算結果

iftrue:

#用訓練資料替換佔位符,計算出cost最小二乘法偏差和

c = sess.run(cost,feed_dict=)

print('epoch:','%04d'%(epoch+1),'cost=',''.format(c),

'w=',sess.run(w),'b=',sess.run(b))

print('optimization finished!')

#資料視覺化

使用Tensorflow進行卷積操作模擬

python版本 3.6.7 tensorflow版本 1.12.3 使用jupyter notebook操作 使用一張5x5 一通道的影象 對應的shape 1,5,5,1 用乙個3 3的卷積核 對應的shape 3,3,1,1 去做卷積 print 矩陣 n sess.run x reshape...

TensorFlow 使用樣本進行求解平方根

之前用的是使用迭代進行直接的求解 但是深度學習最常用的方法是 根據樣本學習 之間的解法是求解arg minf x argminf x argmin f x 目前的解法是求解arg minf x,p argminf x,p argmin f x,p 求的值是p,而不是x p就是要優化的東西 通過樣本來...

linux下c語言使用socket進行執行緒間的通訊

socket起源於unix,而unix linux基本哲學之一就是 一切皆檔案 都可以用 開啟open 讀寫write read 關閉close 模式來操作。socket就是該模式的乙個實現,socket即是一種特殊的檔案,一些socket函式就是對其進行的操作 讀 寫io 開啟 關閉 說白了soc...