tensorflow学习笔记1——计算图模型

tensorflow学习笔记1——计算图模型

看慕课,内容太多,看了2遍很多细节还是没记住。
现在开始启用笔记……

1、命令式编程

类似python:
x=2
y=3
b=1
z=x*y+b

2、计算图模型

x=T.dscalar(‘x’)
y=T.dscalar(‘y’)
b=T.constant(1)
z=x*y+b
f=function([x,y], z)

运行f(2,3)的得array(7.0)

它得计算图模型如下:
在这里插入图片描述
tensorflow也是这样,先构建计算图,输入数值后再计算,好处是得到计算图后便于优化,可以可视化,方便存取。缺点是中间结果很难监视。

#placeholder是一个占位符
x = tf.placeholder(tf.float32,[None, 3072])
y = tf.placeholder(tf.int64, [None])

这里的None表示可变、不固定的值,因为后面会用到batch_size。

w = tf.get_variable('w', [x.get_shape()[-1], 1],
                   initializer=tf.random_normal_initializer(0,1))   #用正态分布的值为w做初始化
b = tf.get_variable('b', [1],
                   initializer=tf.constant_initializer(0.0) )#b初始化为0
#[None,3072] * [3072, 1] = [None,1]
#y_是内积值,矩阵乘法
y_ = tf.matmul(x, w) + b
#[None,1]
#p_y_1是概率值,y==1的概率
p_y_1 = tf.nn.sigmoid(y_)

w的shape是(3072,1),b的shape是1,y_的shape就是[none, 1], p_y_1表示y_==1的概率,shape也是[none,1]。

下面要求loss,需要把真实值和预测值相减,然后开方,再求平均。
所以要把真实值和预测值的shape和type要统一一下
预测值上面我们看到p_y_1的shape是[none, 1],所以真实值要经过一些变换:
y_reshaped = tf.reshape(y, (-1,1))
#y和y_的类型不一样,y是int64,y_是float32,所以要转成一致的
y_reshaped_float = tf.cast(y_reshaped,tf.float32)

补充一下reshape和cast用法:
测试了一下reshape
cast函数
测试一下cast

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值