Tensorflow 第二章学习内容

前几天把Tensorflow 装好了,在虚拟环境中运行。同时用cmd安装了jupyter notebook

对于jupyter notebook打开的初始目录更改,网上有很多,我试了更改配置文件的方法,但是并没用。

只好先cd 到指定目录,在打开jupyter。

接下来是第二章的学习内容,直接上代码,都有备注。

Tensorflow任何操作要在OP下运行,就和绘画的画图一样,最后都要调用paint方法一样。

第二章主要介绍了变量/常量和一些基本运算和简单的示例以及feed 和fetch的介绍

2-1 创建图,启动图


# coding: utf-8

import tensorflow as tf

#创建一个常量OP
m1=tf.constant([[3,3]])
m2=tf.constant([[2],[3]])

#创建一个矩阵乘法OP,把M1M2传入
product=tf.matmul(m1,m2)
#这时候打印是打印不出来的
print(product)     

#这是正常的创建图的方法
sess=tf.Session()
result=sess.run(product)
print(result)
sess.close()  #关闭图

#这是我们常用的方法
with tf.Session() as sess:
    result=sess.run(product)
    print(result)

2-2变量

# coding: utf-8

import tensorflow as tf

#变量,初始值为[1,2]
x=tf.Variable([1,2])

#常量
a=tf.constant([3,3])

#减法OP
sub=tf.subtract(x,a)
#加法OP
add=tf.add(x,sub)

#先全局变量初始化一下,只有变量需要初始化,constant不需要
init=tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    print(sess.run(sub))
    print(sess.run(add))

#设计一个自加1的程序

#创建一个变量,初始化为0
state=tf.Variable(0,name='counter')
#创建一个OP 使state加1
new_value=tf.add(state,1)
#赋值OP  把后面的赋值给前面
update=tf.assign(state,new_value)
init=tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    print(sess.run(state))
    for _ in range(5):
        sess.run(update)
        print(sess.run(state))

2-3 Fetch and Feed 


# coding: utf-8

import tensorflow as tf

#Feth 绘画里可以同时执行多个OP,得到结果

#定义3个常量
input1=tf.constant(3.0)
input2=tf.constant(2.0)
input3=tf.constant(5.0)

add=tf.add(input2,input3)
mul=tf.multiply(input1,add) #乘法

with tf.Session() as sess:
    #同时执行多个OP
    result=sess.run([mul,add])
    print(result)


#Feed
input1=tf.placeholder(tf.float32) #定义两个占位符 , 32位浮点型
input2=tf.placeholder(tf.float32)
output=tf.multiply(input1,input2)

with tf.Session() as sess:
    #Feed 的数据以字典形式传入,其作用是可以后期赋值,先用占位符
    print(sess.run(output,feed_dict={input1:[7.0],input2:[2.]}))  

2-4Tensorflow 简单示例


# coding: utf-8

import tensorflow as tf

import numpy as np

#使用Numpy生成100个随机点
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2

#构造一个线性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b

#定义一个二次代价函数
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行训练的优化器
optimizer=tf.train.GradientDescentOptimizer(0.2) # 梯度下降法 0.2 的学习率
#最小化代价函数
train=optimizer.minimize(loss)

#初始化变量
init=tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init)
    for step in range(201):
        sess.run(train)
        #每训练20次打印一次结果
        if step%20 ==0:
            print(step,sess.run([k,b]))

猜你喜欢

转载自blog.csdn.net/qq_26593695/article/details/82143041
今日推荐