资源简介
问题:
从某物流中心用多台配送车辆向多个客户送货,每个客户的位置和货物需求量一定,每台配送车辆的载重量一定,其一次配送的最大行驶距离一定,要求合理安排车辆配送路线,使目标函数得到优化,并满足以下条件:
代码片段和文件信息
# -*- coding: UTF-8 -*-
import input_data
import tensorflow as tf
mnist = input_data.read_data_sets(“MNIST_data/“ one_hot=True) #读取图片数据集
sess = tf.InteractiveSession()
#---------------------------重要函数声明-------------------------------------
#权重变量
def weight_variable(shape):
#输出正态分布的随机值,标准差为0.1,默认最大为1,最小为-1,均值为0
inital = tf.truncated_normal(shape stddev=0.1)
return tf.Variable(inital)
#偏移变量
def bias_veriable(shape):
#创建一个结构为shape的矩阵,或者说数组,声明其行和列,初始化所有值为0.1
inital = tf.constant(0.1 shape=shape)
return tf.Variable(inital)
#卷积函数,大概意思是根据步长一步一步去遍历输入的值,行成特征向量输出到下一层
def conv2d(x W):
#卷积遍历各个方向步数为1,SAME表示边缘自动补0而不是丢弃,遍历相乘
#strides:表示步长:当输入的默认格式为:“NHWC”,
#则 strides = [batch in_height in_width in_channels]。
#其中 batch 和 in_channels 要求一定为1,即只能在一个样本的一个通道上的特征图上进行移动,
#in_height in_width表示卷积核在特征图的高度和宽度上移动的布长
return tf.nn.conv2d(x W strides=[1 1 1 1] padding=‘SAME‘)
#池化函数:意思是把输入的高宽变小,比如4*4 变成2* 2,有两种方式,一种是取每一个小块的最大值,另外一种是取每一个小块的平均值
def max_pool_2_2(x):
#池化卷积结果(conv2d)池化层的kernal采用和2*2的大小,步数也为2,周围填0,取最大值,数量量缩小
return tf.nn.max_pool(x ksize=[1 2 2 1] strides=[1 2 2 1] padding=‘SAME‘)
#--------------------------定义输入输出结构---------------------------------
#声明一个占位符,None表示输入的图片数量不定,28*28的图片分辨率
xs = tf.placeholder(tf.float32 [None 784])
#输出类别总共是0-9个类别,对应分类的输出结果
ys = tf.placeholder(tf.float32 [None 10])
#x_image又把xs reshape成 28*28*1的形状,因为是灰色图片,所以通道是1,作为训练时的input,-1代表图片数量不定
x_image = tf.reshape(xs [-1 28 28 1])
#-------------------------搭建网络,定义算法公式,也就是前进时候具体应该怎么计算----------
#第一层卷积操作
#第一次卷积核的大小即patch第三个参数是图像通道数,第四个参数是卷积核数目,代表会出现多少个卷积特征图像
W_conv1 = weight_variable([5 5 1 32])
b_conv1 = bias_veriable([32]) #偏移b的数量应该和w一致
#图片乘以卷积核加上偏移量,卷积结果为28 * 28 * 32
#relu函数表示一个激活函数,在大于0时激活,激活到第一象限,其他的收敛于一个接近于0的小数
h_conv1 = tf.nn.relu(conv2d(x_image W_conv1) + b_conv1)
#结果池化,变成14*14*32的池化结果作为下一层的输入
h_pool1 = max_pool_2_2(h_conv1)
#第二次卷积
#32个通道卷积出64个特征
w_conv2 = weight_variable([5 5 32 64])
#64个偏移数据
b_conv2 = bias_veriable([64])
#注意上一层池化的结果作为输入
h_conv2 = tf.nn.relu(conv2d(h_pool1 w_conv2) + b_conv2)
#池化结果
h_pool2 = max_pool_2_2(h_conv2)
#原始图像尺寸为28*28第一轮图像缩小为14*14共32张,第二轮继续缩小为7*7共64张
#第三层全连接操作
#二维张量,第一个参数7*7*64的patch,第二个参数代表卷积有1024个
W_fc1 = weight_variable([7*7*64 1024])
#1024个偏执量
b_fc1 = bias_veriable([1024])
#将第二层的池化结果reshape成一行,有7*7*64个数据[n 7 7 64]->[n 7*7*64]
h_pool2_flat = tf.reshape(h_pool2 [-1 7*7*64])
#卷积操作结果是1*1*1024,这里只有一行,所以直接采用矩阵相乘,而不是遍历相乘第一个参数是行向量,第二个是列向量
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat W_fc1) + b_fc1)
#drop操作,为了减少过度拟合,降低上一层某些输入的权值,防止测评曲线出现震荡
#使用占位符,由dropout自动确定scale
keep_prob = tf.placeholder(tf.float32)
#对卷积结果进行drop操作
h_fc1_drop = tf.nn.dropout(h_fc1 keep_prob)
#第四层输出操作
#二维张量,1*1024矩阵卷积,对应我们定义的10个输出长度ys
W_fc2 = weight_variable([1024 10])
tf.histogram_summary(‘outputlayer/W‘ W_fc2)
b_fc2 = bias_veriable([10])
tf.histogram_summary(‘outputlayer/b‘ b_fc2)
#结果层用逻辑回归softmax或者sigmoid
y_conv = tf.nn.softmax(tf.matmul(h_fc1_drop W_fc2) + b_fc2)
#定义代价函
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-06-08 01:43 GeneticAlgorithm-master\
文件 6937 2017-06-08 01:43 GeneticAlgorithm-master\CNN.py
文件 14416 2017-06-08 01:43 GeneticAlgorithm-master\GA.py
文件 631 2017-06-08 01:43 GeneticAlgorithm-master\README.md
文件 463 2019-03-24 17:34 说明.txt
- 上一篇:基于51单片机HC-06蓝牙模块使用
- 下一篇:DSP28335SVPWM.pdf
相关资源
- Silverlight客户端获取服务器文件路径或
- RRT 随机森林全局路径规划
- 电商面试常问的一个算法实现,即最
- 交通咨询系统设计最短路径问题
- 最短路径算法Dijkstra源代码
- 基于遗传算法的飞机滑行路径优化
- 无线传感器网络路由算法,采用最短
- Leaflet实现路径轨迹回放
- TSP回溯法实现从武汉出发,进行34个省
- 蚁群算法进行三维路径规划
- 地铁建设问题最小生成树
- cmn热带气旋最佳路径数据集
- 粒子群算法 实现 最短路径
- 3维RRT避障路径规划算法
- A_StarSearch.rar
- HOG+SVM读取样本路径批处理文件
- 图结构实验 数据结构 最短路径
- Qt5.8 打开指定路径txt文件 读写TXT文件
- 最短路径Dijkstra
- 基于蚁群算法的无人机三维路径规划
- 基于栅格化的A*路径算法规划基于Si
- Qt 推箱子游戏及最短路径 源码
- 进阶01——考虑换乘的基于路径长度的
- 求迷宫的最短路径:现要求设计一个
- 随机快速扩展树RRT路径规划算法代码
- ROS 全局路径规划讲解,以及怎么编写
- VRP代码车辆路径问题 供参考
- 车辆路径问题 CVRP
- 基本测试路径集合生成工具BPS-Core
- 数据结构课程设计--校园最短路径
评论
共有 条评论