深度之卷积学习day4(卷积神经网络实践与遥感)

一.步骤

1.拥有自己的数据集
2.构建卷积神经网络
3.构建算法
4.实现模型的评估
在这里插入图片描述

二.代码学习:

【1】导入需要的库、数据、包

import tensorflow as tf

# 导入MNIST数据集
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)

在这里插入图片描述

【2】设定一些参数

# 学习率
learning_rate = 0.001

# 训练迭代数
num_steps = 500

# 每次输入的样本数
batch_size = 128

# 显示频道
display_step = 10

# 网络参数
num_input = 784 # MNIST 数据集是784维,也就是 28*28
num_classes = 10 # MNIST 总共有10个类别,分别是 0-9
dropout = 0.75 # Dropout, 一个正则化参数

# tensorflow 图定义Graph 
X = tf.placeholder(tf.float32, [None, num_input])
Y = tf.placeholder(tf.float32, [None, num_classes])
keep_prob = tf.placeholder(tf.float32) # dropout (keep probability) 

在这里插入图片描述
函数形式

tf.placeholder(
    dtype,
    shape=None,
    name=None
)

参数:

dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定) name:名称

函数说明

placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。

模型参数的设定

# 卷积层设置
def conv2d(x, W, b, strides=1):
    x = tf.nn.conv2d(x, W, strides=[1, strides, strides, 1], padding='SAME')
    x = tf.nn.bias_add(x, b)
    return tf.nn.relu(x)

# 池化层设置
def maxpool2d(x, k=2):
    return tf.nn.max_pool(x, ksize=[1, k, k, 1], strides=[1, k, k, 1],
                          padding='SAME')


# CNN模型创建
def conv_net(x, weights, biases, dropout):
    #一个标准的tensorflow 输入结构是 4-D tensor: [Batch Size, Height, Width, Channel]
    x = tf.reshape(x, shape=[-1, 28, 28, 1])

    conv1 = conv2d(x, weights['wc1'], biases['bc1'])
    conv1 = maxpool2d(conv1, k=2)

    conv2 = conv2d(conv1, weights['wc2'], biases['bc2'])
    conv2 = maxpool2d(conv2, k=2)

    # 全连接层
    fc1 = tf.reshape(conv2, [-1, weights['wd1'].get_shape().as_list()[0]])
    fc1 = tf.add(tf.matmul(fc1, weights['wd1']), biases['bd1'])
    fc1 = tf.nn.relu(fc1)
    # 添加dropout
    fc1 = tf.nn.dropout(fc1, dropout)

    # 输出结果
     out = tf.add(tf.matmul(fc1, weights['out']), biases['out'])
    return out
 

在这里插入图片描述
在这里插入图片描述
交叉熵函数
在这里插入图片描述
在这里插入图片描述
给这个模型加一层
**加粗样式
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值