马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 alltolove 于 2018-11-30 10:31 编辑
制作计算图就是完成卷积神经网络的那些个层,代码如下:x=tf.placeholder(tf.float32,[None,3072])
y=tf.placeholder(tf.int64,[None])
x_image=tf.reshape(x,(-1,3,32,32))
x_image=tf.transpose(x_image,perm=[0,2,3,1])
conv3=tf.layers.conv2d(x_image,
10,
(3,3),
padding='same',
activation=None,
name='conv3',
kernel_initializer=tf.truncated_normal_initializer(stddev=0.02)
)
bn=tf.layers.batch_normalization(conv3,
training=True,
)
active=tf.nn.elu(bn)
pooling3=tf.layers.max_pooling2d(active,
(2,2),
(2,2),
name='pool3'
)
flatten=tf.layers.flatten(pooling3)
y_=tf.layers.dense(flatten,10)
loss=tf.losses.sparse_softmax_cross_entropy(labels=y,logits=y_)
predict=tf.argmax(y_,1)
correct_predict=tf.equal(predict,y)
accuracy=tf.reduce_mean(tf.cast(correct_predict,tf.float64))
train_op=tf.train.AdamOptimizer(1e-3).minimize(loss)
init=tf.global_variables_initializer()
首先要把原来一行3072的数据转换成图片的矩阵形式,接下来就是一个卷积层,一个批量归一化层,一个池化层,和一个全连接层,就是最简单的形式,一般卷积神经网的卷积层都是有好几个的,这里为了程序运行速度就简化为一个了。
最后是求一个损失值,计算一下准确率,然后做一个训练数据(又叫反向传播)的算法AdamOptimizer |