tensorflow实现线性回归
tensorflow安装
conda
更新
conda update conda
conda update --all
python
虚拟化环境
pip3 install virtualenv
virtualenv -help
mkdir env ; cd env
virtualenv .
source bin/activate
python -V
deactivate
tensorflow
安装
# ubuntu/mac安装tensorflow
pip3 install virtualenv
mkdir tensorflow ; cd tensorflow
source bin/activate
pip install tensorflow
# windows安装tensorflow
pip install tensorflow
tensorflow简单实例
tensorflow
常量与变量
import numpy as np
import tensorflow as tf
a = tf.Variable(initial_value=10.0, dtype=tf.float32, name='variable_a')
b = tf.constant(value=20.0, dtype=tf.float32, name='constant_b')
c = tf.add(a, b)
m = tf.placeholder(dtype=tf.float32, shape=[2, 3], name='placeholder_m')
n = tf.placeholder(dtype=tf.float32, shape=[3, 2], name='placeholder_n')
o = tf.matmul(m, n)
z = tf.multiply(c, o)
with tf.Session(
config = tf.ConfigProto(log_device_placement=True,
allow_soft_placement=True)) as session:
session.run(tf.initialize_all_variables())
result = session.run(
fetches=[c, o, z],
feed_dict={
m: [[1, 2, 3], [4, 5, 6]],
n: [[1, 2], [3, 4], [5, 6]]})
print("c: {}".format(result[0]))
print("o: {}".format(result[1]))
print("z: {}".format(result[2]))
tensorflow
实现线性回归
import numpy as np
import tensorflow as tf
# print(tf.__version__)
x_data = np.float32(np.random.rand(2, 100))
y_data = np.dot([0.100, 0.200], x_data) + 0.300
# 构造线性模型
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
# 最小化方差
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
for step in range(0, 201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(W), sess.run(b))
# tf.summary.FileWriter('./log/demo', sess.graph)