tensorflow 程式通常分為兩部分:
第一部分構建計算圖譜(這稱為構造階段),
第二部分執行它(這是執行階段)。
建設階段通常構建乙個表示ml模型的計算圖譜,然後對其進行訓練計算。執行
階段通常執行迴圈,重複地求出訓練步驟,逐漸改進模型引數
## 載入包
import numpy as np
from sklearn.datasets import fetch_california_housing
import tensorflow as tf
from sklearn.preprocessing import standardscaler
## 載入資料
housing = fetch_california_housing(
)m, n = housing.data.shape
scl = standardscaler(
)housing_scl = scl.fit_transform(housing.data)
housing_sc_bias = np.c_[np.ones(
(m,1))
, housing_scl]
# 用佔位符,不對x的行數做限制
x = tf.placeholder(tf.float32, shape =
(none
, n +1)
, name =
'x')
y = tf.placeholder(tf.float32, shape =
(none,1
), name =
'y')
# 給theta 隨機初始值
theta = tf.variable(tf.random_uniform(
[n +1,
1],-
1.0,
1.0, seed =42)
, name=
'theta'
)# 計算誤差
y_prd = tf.matmul(x, theta, name =
'predictions'
)error = y_prd - y
# 類似 from functools import reduce
#reduce(lambda x1, x2: x1 + x2 ,[1,2,3])
mse = tf.reduce_mean(tf.square(error)
, name =
'mse'
)# 梯度下降優化器
learn_rate =
0.01
optimizer = tf.train.gradientdescentoptimizer(learning_rate = learn_rate)
training_op = optimizer.minimize(mse)
init = tf.global_variables_initializer(
)# 初始化變數
n_epochs =
10
batch_size =
100
n_batches = np.
int(np.ceil(m / batch_size)
)def
fetch_batch
(epoch, batch_index, batch_size)
:# 隨機獲取小批量資料
np.random.seed(epoch * n_batches + batch_index)
indices = np.random.randint(m, size = batch_size)
return housing_sc_bias[indices]
, housing.target.reshape(-1
,1)[indices]
with tf.session(
)as sess:
# 初始化變數
sess.run(init)
for epoch in
range
(n_epochs)
:# 總共迴圈次數
for batch_index in
range
(n_batches)
: x_batch, y_batch = fetch_batch(epoch, batch_index, batch_size)
# 資料匯入 類似於 sklearn.class.fit
sess.run(training_op, feed_dict =
) best_theta = theta.
eval()
print
(best_theta)
1 簡單的登入介面(1)
1 從左邊的 工具箱 中向設計窗體拖放1個label控制項,然後在縱向複製1個label控制項,接著依次對2個label控制項的 text 屬性進行修改,分別修改為 使用者名稱 密碼 2 從 工具箱 中拖放兩個textbox控制項將它們分別放在對應的label控制項的右邊,textbox2 密碼 的...
JSON簡單例子 1
package com.xuankai.json import org.json.jsonarray import org.json.jsonobject public class test jsonobject jsonobject new jsonobject jsoncontent strin...
簡單迷宮遊戲1
1.這個簡單的迷宮遊戲使用二維陣列來模擬迷宮,用 來模擬小人,通過 q w e a d z x c 來控制小人的上下左右共八個方向的運動。生成迷宮是在0和1中生成隨機數,1代表可走,0代表牆。這個程式主要的部分就是判斷,要走的下一步是不是符合一些要求,即 是否有出界,是否走的位置是牆,是否到達終點。...