精选文章 优化器

优化器

作者:weixin_30673611 时间: 2018-09-01 01:08:00
weixin_30673611 2018-09-01 01:08:00

一、优化器

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

 

#载入数据集
mnist = input_data.read_data_sets("MNIST_data",one_hot=True)

#每个批次的大小
batch_size = 100
#计算一共有多少个批次
n_batch = mnist.train.num_examples // batch_size

#定义两个placeholder
x = tf.placeholder(tf.float32,[None,784])
y = tf.placeholder(tf.float32,[None,10])

#创建一个简单的神经网络
W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))
prediction = tf.nn.softmax(tf.matmul(x,W)+b)

#二次代价函数
# loss = tf.reduce_mean(tf.square(y-prediction))
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y,logits=prediction))
#使用梯度下降法
# train_step = tf.train.GradientDescentOptimizer(0.2).minimize(loss)
train_step = tf.train.AdamOptimizer(1e-2).minimize(loss)

#初始化变量
init = tf.global_variables_initializer()

#结果存放在一个布尔型列表中
correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))#argmax返回一维张量中最大的值所在的位置
#求准确率
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))

with tf.Session() as sess:
  sess.run(init)
  for epoch in range(21):
    for batch in range(n_batch):
      batch_xs,batch_ys = mnist.train.next_batch(batch_size)
      sess.run(train_step,feed_dict={x:batch_xs,y:batch_ys})

    acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})
    print("Iter " + str(epoch) + ",Testing Accuracy " + str(acc))

优化器1

 

转载于:https://www.cnblogs.com/zhaop8078/p/9569996.html

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:python1----variable,condition,function and loop

下一篇:交叉熵

您可能感兴趣

  • 阿里2020/8/3笔试题(二)

    第一题地址:阿里2020/8/3笔试题(一) 接上一篇博客,阿里笔试题第二题。使用了马后炮实现法,考场上实现不了就考完查资料再实现。 第二题:给定一个字符串,字符串只包含abcdef 6个字母,求满足下列规则的最长子序列的长度: 1、a必须在c,e前,c必须在e前; 2、b必须在d,f前, d必须在f前; 两个条件互相独立,因此可以将字符串拆为两个子串,一个子串只含a,c,e三个字母,另一个...

  • java读取modbus(串口,DTU(WIFI )也可 DTU(gprs)也可)协议数据 解释详细 踩坑完整 拿来就可以用的demo(下)

    福兮祸所伏, 祸兮福所倚。(现在发生在你身上的都是好事,福祸相伴) 这些源码应该都可以看的懂 我就不解释了。 public void Connect(String comPort) throws Exception { // 类似于串口连接(个人理解) this.portIdentifier = CommPortIdentifier.getPortIdenti...

  • 存储直通、PCI直通和SR-IOV

    存储直通 存储直通技术(又称裸设备映射, RDM)为虚拟机提供了一种机制来直接访问物理存储子系统(IPSAN 或 FCSAN)上的 LUN,因此虚拟机中的业务能够直接访问存储设备或直接对存储设备下发控制命令。 通过使用裸设备映射,可以让虚拟机识别 SCSI 磁盘,实现在虚拟机内部下发 SCSI 命令,交给主机然后透传给存储设备进行处理,最后将应答返回。裸设备映射能够很好地支撑集群业务在虚拟机...

  • webpack Prefetching/Preloading

    1:是什么 preloading:设置这个指令,就会在当前的页面中,以较高优先级预加载某个资源。其实就相当于浏览器的预加载,但是浏览器的预加载只会加载html中声明的资源,但是preloading突破了这个限制,连css和js资源也可以预加载一波。 Prefetching:设置这个指令,就表示允许浏览器在后台(空闲时)获取将来可能用得到的资源,并且将他们存储在浏览器的缓存中。 这两种其实都是...

  • leetcode动态规划算法

    此文将持续更新,涉及以下题目: 买卖股票的最佳时机 买卖股票的最佳时机 II 买卖股票的最佳时机 III 买卖股票的最佳时机 IV 最佳买卖股票时机含冷冻期 买卖股票的最佳时机含手续费 70. 爬楼梯 难度简单 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出:...

  • 漫谈 SLAM 技术(上)

    转自:https://zhuanlan.zhihu.com/p/135955964 导语 随着最近几年机器人、无人机、无人驾驶、VR/AR的火爆,SLAM技术也为大家熟知,被认为是这些领域的关键技术之一。本文对SLAM技术及其发展进行简要介绍,分析视觉SLAM系统的关键问题以及在实际应用中的难点,并对SLAM的未来进行展望。 1. SLAM技术 SLAM(Simultaneous Local...

  • JVM的年轻代与垃圾回收

    JVM的年轻代与垃圾回收 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对...

  • 构造方法&静态

    构造方法 java会自动创建一个类一个无参构造方法; 如果自己定义了构造方法,java不再自动创建; 没有返回值,在new的时候自动调用构造方法。 作用:在创建对象的时候,给对象设置属性。 构造方法的重载 方法的名字相同,参数不一样,可以解决更多的方式创建对象。 this可以调用当前类中其他构造方法。this(); static方法 静态的内容,在内存中只保留一份,各个对象共享。改一个全部被...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。