莫烦Tensorflow 入门

Tensorflow 初步尝试

#https://mofanpy.com/tutorials/machine-learning/tensorflow/example2/
#创建数据
#搭建模型
#计算误差
#传播误差
#初始会话
#不断训练

import tensorflow as tf
import numpy as np

#创建数据
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data * 0.1 + 0.3
#定义神经元可变参数
W = tf.Variable(tf.random_uniform([1],-1.0,1.0))
b = tf.Variable(tf.zeros([1]))
y = W * x_data + b
#计算误差
loss = tf.reduce_mean(tf.square(y - y_data))
#采用梯度下降法反向传播误差
optimizer = tf.train.GradientDescentOptimizer(0.2)
train = optimizer.minimize(loss)

#初始化所有的神经元可变参数
init = tf.global_variables_initializer()
#创建会话
sess = tf.Session()
#执行初始化步骤
sess.run(init)

#不断的训练数据,提升网络性能
for i in range(1000):
    sess.run(train)
    if i % 100 == 0:
        print(i,sess.run(W),sess.run(b))
        print("Loss:%.11f" % sess.run(loss))

 

Tensorflow 中的 Session

Session 是 Tensorflow 为了控制、和输出文件的执行的语句.

运行 session.run() 可以获得你要得知的运算结果, 或者是你所要运算的部分

import tensorflow as tf

#创建两个矩阵
m1 = tf.constant([[3,3]])
m2 = tf.constant([[2],[2]])
p = tf.matmul(m1,m2)
#[12]]
#使用session 激活p 得到计算结果

## 方法1 ##
sess = tf.Session()
result = sess.run(p)
print(result)
sess.close()

## 方法2 ##
with tf.Session() as sess:
    result2 = sess.run(p)
    print(result2)

 

Tensorflow 中使用 Variable

Tensorflow 中,定义了某字符串是变量,它才是变量

import tensorflow as tf

state = tf.Variable(0,name='Jike')
#定义常量
one = tf.constant(1)

#定义加法步骤【但没有直接运算】
new = tf.add(state,one)

#将 State更新成 new
update = tf.assign(state,new)

#如果定义了Variable,一定要 initialize
init = tf.global_variables_initializer()

#使用session
with tf.Session() as sess:
    sess.run(init) #激活
    for i in range(3):
        sess.run(update)
        print(sess.run(state))  #将sess的指针指向 state

 

Tensorflow 中的 placeholder

placeholder 是 Tensorflow 中的占位符,暂时储存变量.

Tensorflow 如果想要从外部传入data, 那就需要用到 tf.placeholder()

import tensorflow as tf

#在 Tensorflow 中需要定义 placeholder 的 type ,一般为 float32 形式
x = tf.placeholder(tf.float32)
y = tf.placeholder(tf.float32)

# mul = multiply 是将input1和input2 做乘法运算,并输出为 output 
z = tf.multiply(x,y)

#传值的工作交给了 sess.run() , 需要传入的值放在了feed_dict={}
with tf.Session() as sess:
    print(sess.run(z,feed_dict={x:[4.],y:[2.]}))

 

posted @ 2020-08-25 18:49  远征i  阅读(169)  评论(0编辑  收藏  举报