鱼C论坛

 找回密码
 立即注册
查看: 1125|回复: 0

[技术交流] 简单的卷积神经网络------制作计算图

[复制链接]
发表于 2018-11-30 10:24:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 alltolove 于 2018-11-30 10:31 编辑

        制作计算图就是完成卷积神经网络的那些个层,代码如下:
  1. x=tf.placeholder(tf.float32,[None,3072])
  2. y=tf.placeholder(tf.int64,[None])
  3. x_image=tf.reshape(x,(-1,3,32,32))
  4. x_image=tf.transpose(x_image,perm=[0,2,3,1])
  5. conv3=tf.layers.conv2d(x_image,
  6.                        10,
  7.                        (3,3),
  8.                        padding='same',
  9.                        activation=None,
  10.                        name='conv3',
  11.                        kernel_initializer=tf.truncated_normal_initializer(stddev=0.02)
  12.                       )
  13. bn=tf.layers.batch_normalization(conv3,
  14.                                  training=True,
  15. )
  16. active=tf.nn.elu(bn)
  17. pooling3=tf.layers.max_pooling2d(active,
  18.                                  (2,2),
  19.                                  (2,2),
  20.                                  name='pool3'
  21.                                 )
  22. flatten=tf.layers.flatten(pooling3)
  23. y_=tf.layers.dense(flatten,10)
  24. loss=tf.losses.sparse_softmax_cross_entropy(labels=y,logits=y_)
  25. predict=tf.argmax(y_,1)
  26. correct_predict=tf.equal(predict,y)
  27. accuracy=tf.reduce_mean(tf.cast(correct_predict,tf.float64))
  28. train_op=tf.train.AdamOptimizer(1e-3).minimize(loss)
  29. init=tf.global_variables_initializer()
复制代码

        首先要把原来一行3072的数据转换成图片的矩阵形式,接下来就是一个卷积层,一个批量归一化层,一个池化层,和一个全连接层,就是最简单的形式,一般卷积神经网的卷积层都是有好几个的,这里为了程序运行速度就简化为一个了。
        最后是求一个损失值,计算一下准确率,然后做一个训练数据(又叫反向传播)的算法AdamOptimizer

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 20:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表