您现在的位置是:首页 >技术杂谈 >TensorFlow 1.x学习(系列二 :4):自实现线性回归网站首页技术杂谈
TensorFlow 1.x学习(系列二 :4):自实现线性回归
线性回归基本介绍
线性回归: w 1 ∗ x 1 + w 2 ∗ x 2 + w 3 ∗ x 3 + . . . + w n ∗ x n + b i a s w_1 * x_1 + w_2 * x_2 + w_3 * x_3 + ...+ w_n * x_n + bias w1∗x1+w2∗x2+w3∗x3+...+wn∗xn+bias
1:准备好1特征1目标值(都为100行1列)
y = x ∗ 0.7 + 0.8 y = x * 0.7 + 0.8 y=x∗0.7+0.8
2: 建立模型 随机初始化准备一个权重w,一个向量b
y p r e d i c t = x ∗ w + b y_{predict} = x * w + b ypredict=x∗w+b
3:求损失函数,误差
loss 均方误差: ( y 1 − y 1 ′ ) 2 + ( y 2 − y 2 ′ ) 2 + ( y 3 − y 3 ′ ) 2 + . . . + ( y 100 − y 100 ′ ) 2 (y_1-y_1^{'})^2 + (y_2-y_2^{'})^2 + (y_3-y_3^{'})^2 + ... + (y_{100}-y_{100}^{'})^2 (y1−y1′)2+(y2−y2′)2+(y3−y3′)2+...+(y100−y100′)2
4:梯度下降优化
矩阵相乘:
(m行,n行) * (n行,1)(m行,1)
常用的op
矩阵运算:
tf.matmul(x,w)
平方:
tf.square(error)
均值:
tf.reduce_mean(error)
梯度下降优化:
tf.train.GradientDescentOptimizer(learning_rate)
- learning_rate:学习率
- method:
minize(loss)
- return:梯度下降op
自实现线性回归预测
import tensorflow as tf
# 1.准备数据 x:特征值 [100,1] y 目标值[100]
x = tf.random_normal([100,1], mean = 1.75, stddev = 0.5,name = "x_data")
# 矩阵相乘必须是二维的
y_ture = tf.matmul(x,[[0.7]]) + 0.8
# 2.建立线性回归模型,1个特征,1个权重,一个偏置 y = xw + b
# 随机给一个权重和p偏置的值,计算损失,然后在当前状态下优化
# 用变量定义才能优化
weight = tf.Variable(tf.random_normal([1,1],mean = 0.0,stddev = 1.0),name = "w")
bias = tf.Variable(0.0,name = "b")
y_predict = tf.matmul(x,weight) + bias
# 3.建立损失函数,均方误差
loss = tf.reduce_mean(tf.square(y_ture - y_predict))
# 4.梯度下降优化损失 leaning_rate:0.01,0.03,0.1,0.3,......
train_op = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
# 定义一个初始化变量的op
init_op = tf.global_variables_initializer()
# 通过会话运行程序
with tf.Session() as sess:
# 初始化变量
sess.run(init_op)
# 打印随机最先初始化的权重和偏置
print("随机初始化的参数权重为:%f, 偏置为:%f" %(weight.eval(),bias.eval()))
# 循环运行优化
for i in range(200):
sess.run(train_op)
print("第%d次优化的参数权重为:%f, 偏置为:%f" % (i,weight.eval(),bias.eval()))
随机初始化的参数权重为:-1.260226, 偏置为:0.000000
第0次优化的参数权重为:0.349570, 偏置为:0.856385
第1次优化的参数权重为:0.554503, 偏置为:0.966013
第2次优化的参数权重为:0.590992, 偏置为:0.982879
第3次优化的参数权重为:0.600176, 偏置为:0.984269
第4次优化的参数权重为:0.602949, 偏置为:0.982530
第5次优化的参数权重为:0.603653, 偏置为:0.980223
第6次优化的参数权重为:0.602477, 偏置为:0.976848
第7次优化的参数权重为:0.604590, 偏置为:0.975368
第8次优化的参数权重为:0.606588, 偏置为:0.973915
第9次优化的参数权重为:0.607058, 偏置为:0.970954
第10次优化的参数权重为:0.608091, 偏置为:0.969233
第11次优化的参数权重为:0.609337, 偏置为:0.967832
第12次优化的参数权重为:0.611155, 偏置为:0.966740
第13次优化的参数权重为:0.613004, 偏置为:0.965536
第14次优化的参数权重为:0.612485, 偏置为:0.962720
第15次优化的参数权重为:0.614061, 偏置为:0.961301
第16次优化的参数权重为:0.614520, 偏置为:0.958937
第17次优化的参数权重为:0.616852, 偏置为:0.958119
第18次优化的参数权重为:0.616295, 偏置为:0.955777
第19次优化的参数权重为:0.618424, 偏置为:0.954926
第20次优化的参数权重为:0.619317, 偏置为:0.952698
第21次优化的参数权重为:0.620587, 偏置为:0.951464
第22次优化的参数权重为:0.618834, 偏置为:0.948530
第23次优化的参数权重为:0.620162, 偏置为:0.946549
第24次优化的参数权重为:0.622634, 偏置为:0.945858
第25次优化的参数权重为:0.620711, 偏置为:0.942166
第26次优化的参数权重为:0.625347, 偏置为:0.942313
第27次优化的参数权重为:0.625135, 偏置为:0.939911
第28次优化的参数权重为:0.627217, 偏置为:0.939199
第29次优化的参数权重为:0.626247, 偏置为:0.936643
第30次优化的参数权重为:0.626613, 偏置为:0.934633
第31次优化的参数权重为:0.629000, 偏置为:0.933847
第32次优化的参数权重为:0.627664, 偏置为:0.930790
第33次优化的参数权重为:0.628347, 偏置为:0.929241
第34次优化的参数权重为:0.629190, 偏置为:0.927887
第35次优化的参数权重为:0.629488, 偏置为:0.926073
第36次优化的参数权重为:0.630783, 偏置为:0.925387
第37次优化的参数权重为:0.633759, 偏置为:0.924796
第38次优化的参数权重为:0.633682, 偏置为:0.922916
第39次优化的参数权重为:0.634129, 偏置为:0.921727
第40次优化的参数权重为:0.634708, 偏置为:0.920196
第41次优化的参数权重为:0.637197, 偏置为:0.919375
第42次优化的参数权重为:0.637215, 偏置为:0.917746
第43次优化的参数权重为:0.638132, 偏置为:0.916583
第44次优化的参数权重为:0.638923, 偏置为:0.914775
第45次优化的参数权重为:0.639692, 偏置为:0.913617
第46次优化的参数权重为:0.639420, 偏置为:0.911949
第47次优化的参数权重为:0.640025, 偏置为:0.910426
第48次优化的参数权重为:0.640872, 偏置为:0.909163
第49次优化的参数权重为:0.641093, 偏置为:0.907673
第50次优化的参数权重为:0.643309, 偏置为:0.907181
第51次优化的参数权重为:0.643045, 偏置为:0.905277
第52次优化的参数权重为:0.643735, 偏置为:0.903991
第53次优化的参数权重为:0.643588, 偏置为:0.902444
第54次优化的参数权重为:0.646621, 偏置为:0.901957
第55次优化的参数权重为:0.646893, 偏置为:0.900270
第56次优化的参数权重为:0.646804, 偏置为:0.898962
第57次优化的参数权重为:0.648977, 偏置为:0.898630
第58次优化的参数权重为:0.648909, 偏置为:0.897042
第59次优化的参数权重为:0.647807, 偏置为:0.894989
第60次优化的参数权重为:0.648869, 偏置为:0.894172
第61次优化的参数权重为:0.649822, 偏置为:0.893456
第62次优化的参数权重为:0.649694, 偏置为:0.891886
第63次优化的参数权重为:0.650700, 偏置为:0.890743
第64次优化的参数权重为:0.652054, 偏置为:0.890352
第65次优化的参数权重为:0.652859, 偏置为:0.889436
第66次优化的参数权重为:0.652119, 偏置为:0.887770
第67次优化的参数权重为:0.652964, 偏置为:0.886875
第68次优化的参数权重为:0.653426, 偏置为:0.885828
第69次优化的参数权重为:0.653688, 偏置为:0.884811
第70次优化的参数权重为:0.653596, 偏置为:0.883532
第71次优化的参数权重为:0.654088, 偏置为:0.882752
第72次优化的参数权重为:0.656876, 偏置为:0.882962
第73次优化的参数权重为:0.657400, 偏置为:0.882156
第74次优化的参数权重为:0.656131, 偏置为:0.880076
第75次优化的参数权重为:0.658194, 偏置为:0.880023
第76次优化的参数权重为:0.657506, 偏置为:0.878496
第77次优化的参数权重为:0.658431, 偏置为:0.877722
第78次优化的参数权重为:0.659660, 偏置为:0.877093
第79次优化的参数权重为:0.660303, 偏置为:0.876264
第80次优化的参数权重为:0.660780, 偏置为:0.875418
第81次优化的参数权重为:0.659740, 偏置为:0.873733
第82次优化的参数权重为:0.660512, 偏置为:0.872989
第83次优化的参数权重为:0.660498, 偏置为:0.871967
第84次优化的参数权重为:0.662273, 偏置为:0.871845
第85次优化的参数权重为:0.661856, 偏置为:0.870634
第86次优化的参数权重为:0.663076, 偏置为:0.869960
第87次优化的参数权重为:0.662318, 偏置为:0.868278
第88次优化的参数权重为:0.663092, 偏置为:0.867707
第89次优化的参数权重为:0.663791, 偏置为:0.866953
第90次优化的参数权重为:0.664153, 偏置为:0.866294
第91次优化的参数权重为:0.665558, 偏置为:0.865842
第92次优化的参数权重为:0.665020, 偏置为:0.864601
第93次优化的参数权重为:0.665097, 偏置为:0.863732
第94次优化的参数权重为:0.665894, 偏置为:0.863364
第95次优化的参数权重为:0.665769, 偏置为:0.862163
第96次优化的参数权重为:0.667264, 偏置为:0.862036
第97次优化的参数权重为:0.667161, 偏置为:0.861085
第98次优化的参数权重为:0.667991, 偏置为:0.860338
第99次优化的参数权重为:0.667677, 偏置为:0.859164
第100次优化的参数权重为:0.669089, 偏置为:0.858974
第101次优化的参数权重为:0.669126, 偏置为:0.858229
第102次优化的参数权重为:0.669048, 偏置为:0.857309
第103次优化的参数权重为:0.668835, 偏置为:0.856209
第104次优化的参数权重为:0.670389, 偏置为:0.856161
第105次优化的参数权重为:0.669581, 偏置为:0.854690
第106次优化的参数权重为:0.670154, 偏置为:0.854181
第107次优化的参数权重为:0.671056, 偏置为:0.853973
第108次优化的参数权重为:0.671862, 偏置为:0.853643
第109次优化的参数权重为:0.671588, 偏置为:0.852865
第110次优化的参数权重为:0.672041, 偏置为:0.852234
第111次优化的参数权重为:0.671365, 偏置为:0.851269
第112次优化的参数权重为:0.672024, 偏置为:0.850895
第113次优化的参数权重为:0.672710, 偏置为:0.850547
第114次优化的参数权重为:0.673726, 偏置为:0.850134
第115次优化的参数权重为:0.673862, 偏置为:0.849519
第116次优化的参数权重为:0.673717, 偏置为:0.848613
第117次优化的参数权重为:0.674917, 偏置为:0.848498
第118次优化的参数权重为:0.675226, 偏置为:0.847939
第119次优化的参数权重为:0.675061, 偏置为:0.847072
第120次优化的参数权重为:0.674833, 偏置为:0.846282
第121次优化的参数权重为:0.674240, 偏置为:0.845328
第122次优化的参数权重为:0.675781, 偏置为:0.845682
第123次优化的参数权重为:0.675619, 偏置为:0.845072
第124次优化的参数权重为:0.675667, 偏置为:0.844544
第125次优化的参数权重为:0.676225, 偏置为:0.844210
第126次优化的参数权重为:0.676771, 偏置为:0.843786
第127次优化的参数权重为:0.676378, 偏置为:0.842976
第128次优化的参数权重为:0.676996, 偏置为:0.842811
第129次优化的参数权重为:0.676774, 偏置为:0.842037
第130次优化的参数权重为:0.677841, 偏置为:0.842005
第131次优化的参数权重为:0.677907, 偏置为:0.841516
第132次优化的参数权重为:0.677232, 偏置为:0.840520
第133次优化的参数权重为:0.677520, 偏置为:0.840129
第134次优化的参数权重为:0.678028, 偏置为:0.839718
第135次优化的参数权重为:0.678525, 偏置为:0.839416
第136次优化的参数权重为:0.679779, 偏置为:0.839387
第137次优化的参数权重为:0.679641, 偏置为:0.838690
第138次优化的参数权重为:0.679358, 偏置为:0.837802
第139次优化的参数权重为:0.679103, 偏置为:0.837105
第140次优化的参数权重为:0.680350, 偏置为:0.837098
第141次优化的参数权重为:0.680235, 偏置为:0.836543
第142次优化的参数权重为:0.680867, 偏置为:0.836362
第143次优化的参数权重为:0.680463, 偏置为:0.835620
第144次优化的参数权重为:0.681295, 偏置为:0.835552
第145次优化的参数权重为:0.681002, 偏置为:0.834852
第146次优化的参数权重为:0.681176, 偏置为:0.834532
第147次优化的参数权重为:0.681815, 偏置为:0.834394
第148次优化的参数权重为:0.681713, 偏置为:0.833872
第149次优化的参数权重为:0.682004, 偏置为:0.833460
第150次优化的参数权重为:0.682241, 偏置为:0.833143
第151次优化的参数权重为:0.682963, 偏置为:0.833082
第152次优化的参数权重为:0.682644, 偏置为:0.832276
第153次优化的参数权重为:0.683598, 偏置为:0.832310
第154次优化的参数权重为:0.683234, 偏置为:0.831578
第155次优化的参数权重为:0.682760, 偏置为:0.830850
第156次优化的参数权重为:0.682854, 偏置为:0.830455
第157次优化的参数权重为:0.683142, 偏置为:0.830172
第158次优化的参数权重为:0.683947, 偏置为:0.829994
第159次优化的参数权重为:0.683796, 偏置为:0.829461
第160次优化的参数权重为:0.684464, 偏置为:0.829295
第161次优化的参数权重为:0.684254, 偏置为:0.828738
第162次优化的参数权重为:0.684342, 偏置为:0.828373
第163次优化的参数权重为:0.684397, 偏置为:0.828028
第164次优化的参数权重为:0.685024, 偏置为:0.827947
第165次优化的参数权重为:0.685453, 偏置为:0.827691
第166次优化的参数权重为:0.685416, 偏置为:0.827260
第167次优化的参数权重为:0.685513, 偏置为:0.826873
第168次优化的参数权重为:0.685624, 偏置为:0.826560
第169次优化的参数权重为:0.685880, 偏置为:0.826234
第170次优化的参数权重为:0.685898, 偏置为:0.825861
第171次优化的参数权重为:0.686275, 偏置为:0.825644
第172次优化的参数权重为:0.686564, 偏置为:0.825452
第173次优化的参数权重为:0.686397, 偏置为:0.825002
第174次优化的参数权重为:0.686890, 偏置为:0.824804
第175次优化的参数权重为:0.686721, 偏置为:0.824429
第176次优化的参数权重为:0.686747, 偏置为:0.824046
第177次优化的参数权重为:0.687527, 偏置为:0.824161
第178次优化的参数权重为:0.687075, 偏置为:0.823539
第179次优化的参数权重为:0.687096, 偏置为:0.823167
第180次优化的参数权重为:0.687252, 偏置为:0.822927
第181次优化的参数权重为:0.687431, 偏置为:0.822702
第182次优化的参数权重为:0.687524, 偏置为:0.822354
第183次优化的参数权重为:0.688442, 偏置为:0.822540
第184次优化的参数权重为:0.688346, 偏置为:0.822160
第185次优化的参数权重为:0.688606, 偏置为:0.821952
第186次优化的参数权重为:0.688344, 偏置为:0.821463
第187次优化的参数权重为:0.688603, 偏置为:0.821317
第188次优化的参数权重为:0.688499, 偏置为:0.820994
第189次优化的参数权重为:0.688800, 偏置为:0.820883
第190次优化的参数权重为:0.688627, 偏置为:0.820423
第191次优化的参数权重为:0.689048, 偏置为:0.820277
第192次优化的参数权重为:0.689067, 偏置为:0.820057
第193次优化的参数权重为:0.689427, 偏置为:0.819917
第194次优化的参数权重为:0.689293, 偏置为:0.819553
第195次优化的参数权重为:0.689415, 偏置为:0.819265
第196次优化的参数权重为:0.689980, 偏置为:0.819289
第197次优化的参数权重为:0.690093, 偏置为:0.819089
第198次优化的参数权重为:0.689954, 偏置为:0.818728
第199次优化的参数权重为:0.689771, 偏置为:0.818355