模型练习参数100万个,模型操练参数100万个

经文数据集CIFACR-V-10,四千0张32×32彩色图像,训练集四千0张,测试集10000张。标注10类,每类图片伍仟张。airplance、automobile、bird、cat、deer、dog、frog、horse、ship、truck。没有别的重叠。CIFAXC60-100,100类标注。深度学习之父
Geoffrey Hinton和学生亚历克斯 Krizhevsky、Vinod Nair收集。图片源于80 million
tiny images数据集。State-of-the-art
3.5%错误率,GPU练习十几钟头。详细Benchmark和排名在
http://rodrigob.github.io/are\_we\_there\_yet/build/classification\_datasets\_results.html
。LeCun,现有卷积神经网络已经消除CIFA奥迪Q3-10数据集难点。

经文数据集CIFAPRADO-10,四千0张32×32彩色图像,磨炼集四千0张,测试集一千0张。标注10类,每类图片陆仟张。airplance、automobile、bird、cat、deer、dog、frog、horse、ship、truck。没有别的重叠。CIFA酷威-100,100类标注。深度学习之父
杰弗里 Hinton和学生亚历克斯 Krizhevsky、Vinod Nair收集。图片来源于80 million
tiny images数据集。State-of-the-art
3.5%错误率,GPU练习十几钟头。详细Benchmark和排行在
http://rodrigob.github.io/are\_we\_there\_yet/build/classification\_datasets\_results.html
。LeCun,现有卷积神经网络已经解决CIFA陆风X8-10数据集难题。

基于亚历克斯 cuda-convnet模型修改,3000个batch,每种batch
1三十个样本,达到73%正确率。GTX1080单显卡几十秒模型陶冶时间。CPU慢很多。如用100k
batch
结合学习进程decay(每隔一段时间下落学习速率1个比率),正确率可到86%。模型练习参数100万个,预测四则运算总量两千万次。对weights实行L2正则化。图片翻转、随机剪切等数据增进,创造更各个本。每一种卷积-最大池化层后用L昂CoraN层,增强模型泛化能力。

基于亚历克斯 cuda-convnet模型修改,贰仟个batch,各种batch
1贰16个样本,达到73%正确率。GTX1080单显卡几十秒模型操练时间。CPU慢很多。如用100k
batch
结合学习进度decay(每隔一段时间降低学习速率二个比率),正确率可到86%。模型陶冶参数100万个,预测四则运算总量3000万次。对weights进行L2正则化。图片翻转、随机剪切等数据拉长,创立更种种本。每一种卷积-最大池化层后用LENCOREN层,增强模型泛化能力。

下载TensorFlow Models库,使用在那之中提供CIFA奥迪Q5-10数据类。git clone
https://github.com/tensorflow/models.git。models/tutorials/image/cifar10。

下载TensorFlow Models库,使用个中提供CIFAOdyssey-10数据类。git clone
https://github.com/tensorflow/models.git。models/tutorials/image/cifar10。

载入常用库,NumPy、time,TensorFlow Models自动下载、读取CIFACRUISER-10数据类。

载入常用库,NumPy、time,TensorFlow Models自动下载、读取CIFA福特Explorer-10数据类。

定义batch_size,练习轮数max_steps,下载CIFAEvoque-10数据默许路径。

定义batch_size,锻炼轮数max_steps,下载CIFA哈弗-10数据暗中认可路径。

概念初始化weight函数,tf.truncated_normal截断正态分布开始化权重。Weight加L2
loss ,做L2
正则化。减少特征或处以不根本特色权重,缓解特征过多导致过拟合。正则化辅助找到该处以的特征权重。为利用有个别特征,需提交loss代价。L1正则创制稀疏特征,超过一半无用特征权重被置0。L2正则让特征权重但是大,特征权重较平均。wl控制L2
loss大小,tf.nn.l2_loss函数总结weight L2 loss,tf.multiply L2 loss
乘以wl,得最后 weight loss。tf.add_to_collection weight
loss统一存在collection losses,总计神经互联网总体loss使用。

概念开端化weight函数,tf.truncated_normal截断正态分布初步化权重。Weight加L2
loss ,做L2
正则化。减弱特征或处以不主要特征权重,缓解特征过多导致过拟合。正则化援救找到该处以的特征权重。为运用有个别特征,需付出loss代价。L1正则创设稀疏特征,抢先三分之二无用特征权重被置0。L2正则让特征权重但是大,特征权重较平均。wl控制L2
loss大小,tf.nn.l2_loss函数计算weight L2 loss,tf.multiply L2 loss
乘以wl,得最后 weight loss。tf.add_to_collection weight
loss统一存在collection losses,计算神经互联网总体loss使用。

用cifar10类下载数据集,解压、展开到暗许地点。

用cifar10类下载数据集,解压、展开到默许地点。

用cifar10_input类
distorted_inputs函数产生演习多少,包蕴特征、label,重临封装tensor,每一遍执行生成多个batch_size数量样本。Data
Augmentation(数据拉长),cifar10_input.distorted_inputs函数,随机水平翻转(tf.image.random_flip_left_right)、随机剪切一块24×24图形(tf.random_crop)、设置随机亮度比较度(tf.image.random_brightness、tf.image.random_contrast),数据标准(tf.image.per_image_whitening,数据减均值,除方差,保障数据零均值,方差1)。得到更二种本,带噪声,一张图纸样本变多张图纸,扩展样本量,升高准确率。数据增加操作消耗大批量CPU时间,distored_inputs用十六个独立线程加速义务,函数内部爆发线程池,通过TensorFlow
queue调度。

用cifar10_input类
distorted_inputs函数发生演习多少,包罗特征、label,再次来到封装tensor,每一趟执行生成1个batch_size数量样本。Data
Augmentation,cifar10_input.distorted_inputs函数,随机水平翻转(tf.image.random_flip_left_right)、随机剪切一块24×24图形(tf.random_crop)、设置随机亮度相比度(tf.image.random_brightness、tf.image.random_contrast),数据标准(tf.image.per_image_whitening,数据减均值,除方差,有限帮忙数据零均值,方差1)。得到更各种本,带噪声,一张图片样本变多张图片,增添样本量,提升准确率。数据增进操作消耗多量CPU时间,distored_inputs用1多少个单身线程加快职责,函数内部发生线程池,通过TensorFlow
queue调度。

用cifar10_input.inputs函数生成测试数据,裁剪图片正中间24×24大小区块,数据标准。

用cifar10_input.inputs函数生成测试数据,裁剪图片正中间24×24大小区块,数据标准。

创立输入数据placeholderx,特征、label。设定placeholder数据尺寸,batch_size定义互联网布局要用,数据尺寸第三个值样本条数必要事先设定,不可能设None。数据尺寸的图片尺寸为24×24,裁剪后大小,颜色通道数3,彩色汉兰达GB三通道。

创造输入数据placeholderx,特征、label。设定placeholder数据尺寸,batch_size定义网络布局要用,数据尺寸第二个值样本条数须要事先设定,不能设None。数据尺寸的图片尺寸为24×24,裁剪后大小,颜色通道数3,彩色中华VGB三通道。

先是个卷积层,variable_with_weight_loss
函数创设卷积核参数起首化。卷积核大小5×5,2个颜色通道,六十一个卷积核,设置weight起始化函数标准差0.05。wl(weight
loss)设0。tf.nn.conv2d函数对输入数据image_holder卷积操作,步长stride设1,padding方式SAME,bias开端化0,卷积结果加bias,用ReLU激活函数非线化。用尺寸3×3,步长2×2最大池化层处理数量,尺寸、步长不均等,扩充多少丰硕性。tf.nn.lrn函数,L酷路泽N,处理结果。

先是个卷积层,variable_with_weight_loss
函数创造卷积核参数初步化。卷积核大小5×5,二个颜色通道,61个卷积核,设置weight初阶化函数标准差0.05。wl(weight
loss)设0。tf.nn.conv2d函数对输入数据image_holder卷积操作,步长stride设1,padding形式SAME,bias初步化0,卷积结果加bias,用ReLU激活函数非线化。用尺寸3×3,步长2×2最大池化层处理多少,尺寸、步长不均等,扩张多少丰硕性。tf.nn.lrn函数,L奥迪Q7N,处理结果。

L揽胜N起于亚历克斯用CNN参与ImageNet竞技杂文。LSportageN模仿生物神经系统侧抑制机制,对部分神经元活动开创竞争环境,响应较大值变得相对更大,抑制其余举报较小神经元,增强模型泛化能力。用LQX56N后CNN
Top1错误率降低1.4%。LMuranoN对无上限边界激活函数ReLU有用,从附近几个卷积核响应(Response)挑选较大报告,不切合固定边界能抑制过大值激活函数Sigmoid。

LMuranoN起于亚历克斯用CNN出席ImageNet比赛诗歌。LSportageN模仿生物神经系统侧抑制机制,对一些神经元活动成立竞争环境,响应较大值变得相对更大,抑制其余举报较小神经元,增强模型泛化能力。用LSportageN后CNN
Top1错误率下跌1.4%。L途乐N对无上限边界激活函数ReLU有用,从邻近多少个卷积核响应挑选较大报告,不合乎固定边界能平抑过大值激活函数Sigmoid。

第二个卷积层,卷积核尺寸第③维度输入通道数64,bias值全开始化0.1。先进行LENVISIONN层处理,再用最大池化层。

其次个卷积层,卷积核尺寸第1维度输入通道数64,bias值全伊始化0.1。先实行LTucsonN层处理,再用最大池化层。

全连接层,把前边八个卷积层输出结果一切flatten,tf.reshape函数把各类样本变成一维向量。get_shape函数获取数据扁平化长度。variable_with_weight_loss函数早先化全连接层weight,隐含节点384,正态分布标准差0.04,bias伊始化0.1。设非零weight
loss值0.04,全体参数被L2正则约束,制止过拟合。ReLU激活函数非线性化。

全连接层,把前边多少个卷积层输出结果一切flatten,tf.reshape函数把各样样本变成一维向量。get_shape函数获取数据扁平化长度。variable_with_weight_loss函数开首化全连接层weight,隐含节点384,正态分布标准差0.04,bias发轫化0.1。设非零weight
loss值0.04,全部参数被L2正则约束,防止过拟合。ReLU激活函数非线性化。

其次个全连接层,隐含节点192。

其次个全连接层,隐含节点192。

说到底一层,先创建weight,正态分布标准差设上一隐含层节点数尾数,不计入L2正则。Softmax操作放在计算loss部分,不须求对inference输出softmax处理,就足以博得最终分类,直接相比inference输出各种数值大小。

最后一层,先创立weight,正态分布标准差设上一隐含层节点数尾数,不计入L2正则。Softmax操作放在总计loss部分,不供给对inference输出softmax处理,就能够赢得最后分类,直接比较inference输出各个数值大小。

万事卷积神经互连网从输入到输出流程。设计CNN,计划卷积层、池化层、全连接层分布和顺序,超参数设置、Trick使用。卷积神经互联网布局:
conv1:卷积层和ReLU激活函数
pool1:最大池化
norm1:LRN
conv2:卷积层和ReLU激活函数
norm2:LRN
pool2:最大池化
local3:全连接层和ReLU激活函数
local4:全连接层和ReLU激活函数
logits:模型Inference输出结果

任何卷积神经互连网从输入到输出流程。设计CNN,安插卷积层、池化层、全连接层分布和顺序,超参数设置、Trick使用。卷积神经网络布局:
conv1:卷积层和ReLU激活函数
pool1:最大池化
norm1:LRN
conv2:卷积层和ReLU激活函数
norm2:LRN
pool2:最大池化
local3:全连接层和ReLU激活函数
local4:全连接层和ReLU激活函数
logits:模型Inference输出结果

计量CNN loss。softmax总计和cross entropy loss
总结合在一齐,tf.nn.sparse_softmax_cross_entropy_with_logits。tf.reduce_mean计算cross
entropy均值,tf.add_to_collection 添加cross entropy loss 到整体losses
collection。tf.add_n全体losses collection
全部loss求和,得最后loss,包涵cross entropy loss,和后多少个一而再层weight
L2 loss。Logits节点、label_placeholder传入loss儿童数,得到最后loss。

算算CNN loss。softmax计算和cross entropy loss
总括合在一齐,tf.nn.sparse_softmax_cross_entropy_with_logits。tf.reduce_mean计算cross
entropy均值,tf.add_to_collection 添加cross entropy loss 到整体losses
collection。tf.add_n全部losses collection
全部loss求和,得最后loss,包涵cross entropy loss,和后三个接二连三层weight
L2 loss。Logits节点、label_placeholder传入loss孩童数,获得最后loss。

优化器选拔Adam Optimizer,学习速率1e-3。

优化器选用Adam Optimizer,学习速率1e-3。

tf.nn.in_top_k函数求输出结果top k准确率,暗中认可top
1,输出分类最高类准确率。

tf.nn.in_top_k函数求输出结果top k准确率,暗许top
1,输出分类最高类准确率。

tf.InteractiveSession创立暗中认可session ,初叶化全体模型参数。

tf.InteractiveSession创制暗中认可session ,初步化整人体模型子参数。

启航空图片数据增进线程队列,十七个线程加快。

初叶图片数据增加线程队列,十七个线程加速。

教练。每种step演习进度,session run方法执行images_train、
labels_train总括,得到batch磨炼多少,传入train_op和loss总结。记录各类step时间,每隔拾1个step计算展现当前loss、每分钟练习样本数量、练习batch数据时间,监察和控制全体磨炼进程。GTX
1080,每秒磨练1800个样本,batch_size 128,各样batch
0.066s。损失loss,开首4.6,三千步练习降低到1.0。

教练。各种step练习进度,session run方法执行images_train、
labels_train总计,得到batch磨练多少,传入train_op和loss总结。记录每种step时间,每隔11个step总括呈现当前loss、每分钟练习样本数量、磨练batch数据时间,监察和控制整个磨练进程。GTX
1080,每秒陶冶1800个样本,batch_size 128,每种batch
0.066s。损失loss,初阶4.6,3000步磨炼下落到1.0。

评测模型测试集准确率。测试集一千0个样本,使用固定batch_size,各种batch输入测试数据。总括全体样书评测完batch数量。每种step用session
run方法获得images_test、labels_test的batch,执行top_k_op计算模型
batch top
1预测正确样本数。汇总全数预测正确结果,求万事测试样本预测正确数量。

评测模型测试集准确率。测试集一千0个样本,使用固定batch_size,每一个batch输入测试数据。总计全体样本评测完batch数量。每一个step用session
run方法取得images_test、labels_test的batch,执行top_k_op总计模型
batch top
1预测正确样本数。汇总全体预测正确结果,求全体测试样本预测正确数量。

打字与印刷准确率评测结果总结。

打字与印刷准确率评测结果计算。

73%准确率。持续增多max_steps,期望准确率渐渐扩张。max_steps较大,用学习速率衰减(decay)的SGD练习,接近86%。L2正则,LOdysseyN层进步模型准确率,升高框泛化性。

73%准确率。持续增多max_steps,期望准确率逐步增多。max_steps较大,用学习速率衰减的SGD磨炼,接近86%。L2正则,L奥迪Q5N层升高模型准确率,提升框泛化性。

多少增进(Data
Augmentation),给单幅图扩大多少个副本,进步图片利用率,幸免图片结构学习过拟合。利用图片自身品质,图片冗余音讯量较大,创立分化噪声,依可甄别。神经网络战胜噪声准确辨认,泛化性更好。深度学习只要提供丰盛多种本,准确率能够持续升级。
规模越大越复杂神经互联网模型,能够达到规定的标准准确率水平越高,供给越来越多多少磨炼。Alexcuda-convnet测试结果,CIFA昂Cora-10,不数据拉长,错误最低下跌到17%,数据拉长,错误率下跌到11%。

数量拉长(Data
Augmentation),给单幅图扩展三个副本,进步图片利用率,制止图片结构学习过拟合。利用图片本人质量,图片冗余消息量较大,创设不一样噪声,依可甄别。神经网络克制噪声准确辨认,泛化性更好。深度学习只要提供丰裕三种本,准确率能够不停升级。
规模越大越复杂神经网络模型,能够达到规定的标准准确率水平越高,供给愈来愈多数据陶冶。Alexcuda-convnet测试结果,CIFA奥迪Q3-10,不数据增进,错误最低降低到17%,数据增加,错误率降低到11%。

    import cifar10,cifar10_input
    import tensorflow as tf
    import numpy as np
    import time
    max_steps = 3000
    batch_size = 128
    data_dir = '/tmp/cifar10_data/cifar-10-batches-bin'
    def variable_with_weight_loss(shape, stddev, wl):
        var = tf.Variable(tf.truncated_normal(shape, stddev=stddev))
        if wl is not None:
            weight_loss = tf.multiply(tf.nn.l2_loss(var), wl, name='weight_loss')
            tf.add_to_collection('losses', weight_loss)
        return var
    def loss(logits, labels):
        labels = tf.cast(labels, tf.int64)
        cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(
            logits=logits, labels=labels, name='cross_entropy_per_example')
        cross_entropy_mean = tf.reduce_mean(cross_entropy, name='cross_entropy')
        tf.add_to_collection('losses', cross_entropy_mean)
        return tf.add_n(tf.get_collection('losses'), name='total_loss')

    ###
    cifar10.maybe_download_and_extract()
    images_train, labels_train = cifar10_input.distorted_inputs(data_dir=data_dir,
                                                            batch_size=batch_size)
    images_test, labels_test = cifar10_input.inputs(eval_data=True,
                                                data_dir=data_dir,
                                                batch_size=batch_size)                                                  
    #images_train, labels_train = cifar10.distorted_inputs()
    #images_test, labels_test = cifar10.inputs(eval_data=True)
    image_holder = tf.placeholder(tf.float32, [batch_size, 24, 24, 3])
    label_holder = tf.placeholder(tf.int32, [batch_size])
    #logits = inference(image_holder)
    weight1 = variable_with_weight_loss(shape=[5, 5, 3, 64], stddev=5e-2, wl=0.0)
    kernel1 = tf.nn.conv2d(image_holder, weight1, [1, 1, 1, 1], padding='SAME')
    bias1 = tf.Variable(tf.constant(0.0, shape=[64]))
    conv1 = tf.nn.relu(tf.nn.bias_add(kernel1, bias1))
    pool1 = tf.nn.max_pool(conv1, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1],
                       padding='SAME')
    norm1 = tf.nn.lrn(pool1, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75)
    weight2 = variable_with_weight_loss(shape=[5, 5, 64, 64], stddev=5e-2, wl=0.0)
    kernel2 = tf.nn.conv2d(norm1, weight2, [1, 1, 1, 1], padding='SAME')
    bias2 = tf.Variable(tf.constant(0.1, shape=[64]))
    conv2 = tf.nn.relu(tf.nn.bias_add(kernel2, bias2))
    norm2 = tf.nn.lrn(conv2, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75)
    pool2 = tf.nn.max_pool(norm2, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1],
                       padding='SAME')
    reshape = tf.reshape(pool2, [batch_size, -1])
    dim = reshape.get_shape()[1].value
    weight3 = variable_with_weight_loss(shape=[dim, 384], stddev=0.04, wl=0.004)
    bias3 = tf.Variable(tf.constant(0.1, shape=[384]))
    local3 = tf.nn.relu(tf.matmul(reshape, weight3) + bias3)
    weight4 = variable_with_weight_loss(shape=[384, 192], stddev=0.04, wl=0.004)
    bias4 = tf.Variable(tf.constant(0.1, shape=[192]))                                      
    local4 = tf.nn.relu(tf.matmul(local3, weight4) + bias4)
    weight5 = variable_with_weight_loss(shape=[192, 10], stddev=1/192.0, wl=0.0)
    bias5 = tf.Variable(tf.constant(0.0, shape=[10]))
    logits = tf.add(tf.matmul(local4, weight5), bias5)
    loss = loss(logits, label_holder)
    train_op = tf.train.AdamOptimizer(1e-3).minimize(loss) #0.72
    top_k_op = tf.nn.in_top_k(logits, label_holder, 1)
    sess = tf.InteractiveSession()
    tf.global_variables_initializer().run()
    tf.train.start_queue_runners()
    ###
    for step in range(max_steps):
        start_time = time.time()
        image_batch,label_batch = sess.run([images_train,labels_train])
        _, loss_value = sess.run([train_op, loss],feed_dict={image_holder: image_batch, 
                                                         label_holder:label_batch})
        duration = time.time() - start_time
        if step % 10 == 0:
            examples_per_sec = batch_size / duration
            sec_per_batch = float(duration)

            format_str = ('step %d, loss = %.2f (%.1f examples/sec; %.3f sec/batch)')
            print(format_str % (step, loss_value, examples_per_sec, sec_per_batch))

    ###
    num_examples = 10000
    import math
    num_iter = int(math.ceil(num_examples / batch_size))
    true_count = 0  
    total_sample_count = num_iter * batch_size
    step = 0
    while step < num_iter:
        image_batch,label_batch = sess.run([images_test,labels_test])
        predictions = sess.run([top_k_op],feed_dict={image_holder: image_batch,
                                                 label_holder:label_batch})
        true_count += np.sum(predictions)
        step += 1
    precision = true_count / total_sample_count
    print('precision @ 1 = %.3f' % precision)
    import cifar10,cifar10_input    import tensorflow as tf    import numpy as np    import time    max_steps = 3000    batch_size = 128    data_dir = '/tmp/cifar10_data/cifar-10-batches-bin'    def variable_with_weight_loss(shape, stddev, wl):        var = tf.Variable(tf.truncated_normal(shape, stddev=stddev))        if wl is not None:            weight_loss = tf.multiply(tf.nn.l2_loss, wl, name='weight_loss')            tf.add_to_collection('losses', weight_loss)        return var    def loss(logits, labels):        labels = tf.cast(labels, tf.int64)        cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(            logits=logits, labels=labels, name='cross_entropy_per_example')        cross_entropy_mean = tf.reduce_mean(cross_entropy, name='cross_entropy')        tf.add_to_collection('losses', cross_entropy_mean)        return tf.add_n(tf.get_collection('losses'), name='total_loss')      ###    cifar10.maybe_download_and_extract()    images_train, labels_train = cifar10_input.distorted_inputs(data_dir=data_dir,                                                            batch_size=batch_size)    images_test, labels_test = cifar10_input.inputs(eval_data=True,                                                data_dir=data_dir,                                                batch_size=batch_size)                                                      #images_train, labels_train = cifar10.distorted_inputs()    #images_test, labels_test = cifar10.inputs(eval_data=True)    image_holder = tf.placeholder(tf.float32, [batch_size, 24, 24, 3])    label_holder = tf.placeholder(tf.int32, [batch_size])    #logits = inference(image_holder)    weight1 = variable_with_weight_loss(shape=[5, 5, 3, 64], stddev=5e-2, wl=0.0)    kernel1 = tf.nn.conv2d(image_holder, weight1, [1, 1, 1, 1], padding='SAME')    bias1 = tf.Variable(tf.constant(0.0, shape=[64]))    conv1 = tf.nn.relu(tf.nn.bias_add(kernel1, bias1))    pool1 = tf.nn.max_pool(conv1, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1],                       padding='SAME')    norm1 = tf.nn.lrn(pool1, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75)    weight2 = variable_with_weight_loss(shape=[5, 5, 64, 64], stddev=5e-2, wl=0.0)    kernel2 = tf.nn.conv2d(norm1, weight2, [1, 1, 1, 1], padding='SAME')    bias2 = tf.Variable(tf.constant(0.1, shape=[64]))    conv2 = tf.nn.relu(tf.nn.bias_add(kernel2, bias2))    norm2 = tf.nn.lrn(conv2, 4, bias=1.0, alpha=0.001 / 9.0, beta=0.75)    pool2 = tf.nn.max_pool(norm2, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1],                       padding='SAME')    reshape = tf.reshape(pool2, [batch_size, -1])    dim = reshape.get_shape()[1].value    weight3 = variable_with_weight_loss(shape=[dim, 384], stddev=0.04, wl=0.004)    bias3 = tf.Variable(tf.constant(0.1, shape=[384]))    local3 = tf.nn.relu(tf.matmul(reshape, weight3) + bias3)    weight4 = variable_with_weight_loss(shape=[384, 192], stddev=0.04, wl=0.004)    bias4 = tf.Variable(tf.constant(0.1, shape=[192]))                                          local4 = tf.nn.relu(tf.matmul(local3, weight4) + bias4)    weight5 = variable_with_weight_loss(shape=[192, 10], stddev=1/192.0, wl=0.0)    bias5 = tf.Variable(tf.constant(0.0, shape=[10]))    logits = tf.add(tf.matmul(local4, weight5), bias5)    loss = loss(logits, label_holder)    train_op = tf.train.AdamOptimizer.minimize #0.72    top_k_op = tf.nn.in_top_k(logits, label_holder, 1)    sess = tf.InteractiveSession()    tf.global_variables_initializer    tf.train.start_queue_runners()    ###    for step in range(max_steps):        start_time = time.time()        image_batch,label_batch = sess.run([images_train,labels_train])        _, loss_value = sess.run([train_op, loss],feed_dict={image_holder: image_batch,                                                          label_holder:label_batch})        duration = time.time() - start_time        if step % 10 == 0:            examples_per_sec = batch_size / duration            sec_per_batch = float                format_str = ('step %d, loss = %.2f (%.1f examples/sec; %.3f sec/batch)')            print(format_str % (step, loss_value, examples_per_sec, sec_per_batch))        ###    num_examples = 10000    import math    num_iter = int(math.ceil(num_examples / batch_size))    true_count = 0      total_sample_count = num_iter * batch_size    step = 0    while step < num_iter:        image_batch,label_batch = sess.run([images_test,labels_test])        predictions = sess.run([top_k_op],feed_dict={image_holder: image_batch,                                                 label_holder:label_batch})        true_count += np.sum(predictions)        step += 1    precision = true_count / total_sample_count    print('precision @ 1 = %.3f' % precision)

 

参考资料:
《TensorFlow实战》

参考资料:
《TensorFlow实战》

迎接付费咨询,小编的微信:qingxingfengzi

迎接付费咨询(150元每时辰),作者的微信:qingxingfengzi

相关文章