tensorflow学习笔记1

卷积与池化:

卷积:

1.stride [1,2,2,1]  卷积步长为2, 第1\4参数为1.分别表示batch和channel

VALID:without padding(仅丢弃下面或右边最多的行/列)

SAME:with zero padding 左奇右偶,在左边补一个0,右边补2个0

weight_variable:

 

# 第一二参数值得卷积核尺寸大小,即patch=5*5,第三个参数是图像通道数=1,第四个参数是卷积核的数目=32,代表会出现多少个卷积特征图像;

W_conv1 = weight_variable([5, 5, 1, 32])

# 对于每一个卷积核都有一个对应的偏置量。

b_conv1 = bias_variable([32])

# 图片乘以卷积核,并加上偏执量,卷积结果28x28x32

h_conv1 = tf.nn.relu(conv2d(x_image, W_conv1) + b_conv1)

池化:

ksize [1,2,2,1]  池化窗口大小2*2  第1\4参数为1.

# 池化结果14x14x32 卷积结果乘以池化卷积核

h_pool1 = max_pool_2x2(h_conv1)

## 第二层卷积操作 ##

# 32通道卷积,卷积出64个特征

w_conv2 = weight_variable([5,5,32,64])

# 64个偏执数据

b_conv2 = bias_variable([64])

# 注意h_pool1是上一层的池化结果,#卷积结果14x14x64

h_conv2 = tf.nn.relu(conv2d(h_pool1,w_conv2)+b_conv2)

 

全连接层:

# 二维张量,第一个参数7*7*64的patch,也可以认为是只有一行7*7*64个数据的卷积,第二个参数代表卷积个数共1024个

W_fc1 = weight_variable([7*7*64, 1024])

# 1024个偏置数据

b_fc1 = bias_variable([1024])

 

tf.cats:转换数据类型

tf.round() 舍入最近的整数

tf.reduce_sum(x,1/0):按某一维度以求和方式降维  0纵向求和,1横向求和,不填默认为所有元素求和

tf.reduce_mean(x,1/0):按某一维度以求和方式降维 同上

 

np.shuffle(a):对矩阵进行洗牌,原矩阵改变.无返回值

定义初始化变量。但是这里仍然不会立即执行。需要通过sess来将数据流动起来 。

 

切记:所有的运算都应在在session中进行:

with tf.Session() as sess:

此处自动开启一个sessionsess.run(init)

对变量进行初始化,执行(run)init语句

feed_dict:

step_loss = sess.run([loss], feed_dict={X: train_X, Y: train_Y})#feed_dict的作用是给使用placeholder创建出来的tensor赋值。其实,他的作用更加广泛:feed 使用一个 值临时替换一个 op 的输出结果. 你可以提供 feed 数据作为 run() 调用的参数. feed 只在调用它的方法内有效, 方法结束, feed 就会消失.train_X替换X,train_Y替换Y

sess.run(b)只会计算和b有关的流程

其他:

1、dropout必须设置概率keep_prob,并且keep_prob也是一个占位符,跟输入是一样的

keep_prob = tf.placeholder(tf.float32) 设置神经元被选中的概率,在初始化时keep_prob是一个占位符

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值