博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tensorflow入门(二)
阅读量:4631 次
发布时间:2019-06-09

本文共 3161 字,大约阅读时间需要 10 分钟。

import numpy as npimport tensorflow as tfimport matplotlib.pyplot as plt#使用numpy生成200个随机点x_data = np.linspace(-0.5,0.5,200)[:,np.newaxis]noise = np.random.normal(0,0.02,x_data.shape)y_data = np.square(x_data) + noise#定义两个placeholderx = tf.placeholder(tf.float32,[None,1])y = tf.placeholder(tf.float32,[None,1])#定义神经网络中间层Weights_L1 = tf.Variable(tf.random_normal([1,10]))biases_L1 = tf.Variable(tf.zeros([1,10]))Wx_plus_b_L1 = tf.matmul(x,Weights_L1) + biases_L1L1 = tf.nn.tanh(Wx_plus_b_L1)#定义神经网络输出层Weights_L2 = tf.Variable(tf.random_normal([10,1]))biases_L2 = tf.Variable(tf.zeros([1,1]))Wx_plus_b_L2 = tf.matmul(L1,Weights_L2) + biases_L2prediction = tf.nn.tanh(Wx_plus_b_L2)#二次代价函数loss = tf.reduce_mean(tf.square(y - prediction))#使用梯度下降法train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)with tf.Session() as sess:    #变量初始化    sess.run(tf.global_variables_initializer())    for _ in range(2000):        sess.run(train_step,feed_dict={x:x_data,y:y_data})    #获得预测值    prediction_value = sess.run(prediction,feed_dict={x:x_data})    #画图    plt.figure()    plt.scatter(x_data,y_data)    plt.plot(x_data,prediction_value,'r-',lw = 5)    plt.show()

得到结果:

——

 

import tensorflow as tffrom 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#定义两个placeholderx = 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))#梯度下降算法train_step = tf.train.GradientDescentOptimizer(0.2).minimize(loss)#初始化变量init = tf.global_variables_initializer()#结果存放在一个bool类型的列表中,argmax()返回一维张量中最大值所在的位置,equal函数判断两者是否相等correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))#求准确率,cast:将bool型转换为0,1然后求平均正好算到是准确率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(batch_size):#next_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))

训练结果:

Iter 0,Testing Accuracy 0.657Iter 1,Testing Accuracy 0.7063Iter 2,Testing Accuracy 0.7458Iter 3,Testing Accuracy 0.7876Iter 4,Testing Accuracy 0.8203Iter 5,Testing Accuracy 0.8406Iter 6,Testing Accuracy 0.8492Iter 7,Testing Accuracy 0.8586Iter 8,Testing Accuracy 0.8642Iter 9,Testing Accuracy 0.8678Iter 10,Testing Accuracy 0.8709Iter 11,Testing Accuracy 0.8736Iter 12,Testing Accuracy 0.8751Iter 13,Testing Accuracy 0.8784Iter 14,Testing Accuracy 0.88Iter 15,Testing Accuracy 0.8816Iter 16,Testing Accuracy 0.883Iter 17,Testing Accuracy 0.8841Iter 18,Testing Accuracy 0.8847Iter 19,Testing Accuracy 0.8855Iter 20,Testing Accuracy 0.8878

可见,通过多次的训练,识别的准确值不断提高

——

转载于:https://www.cnblogs.com/cunyusup/p/8635309.html

你可能感兴趣的文章
asp.net实现数据库备份还原功能
查看>>
java高cpu占用和高内存占用
查看>>
ASP.NET 页面之间传值的几种方式
查看>>
华为笔试(1)
查看>>
Python小程序collatz
查看>>
功能键1,输出所有所查信息的记录
查看>>
简单模拟flume
查看>>
SQL Server 事务日志文件已满,收缩日志文件(9002)
查看>>
分享一款在线贝塞尔曲线调试器
查看>>
职责链模式
查看>>
[Selenium]对弹出的Alert窗口进行操作
查看>>
C# 进制转换
查看>>
C中级 MariaDB Connector/C API 编程教程
查看>>
C 中级 - SO_REUSEPORT 和 SO_REUSEADDR
查看>>
网络配置:linux学习第一篇
查看>>
多域名同一个IP在IIS环境下架设多个网站 主机头
查看>>
Python学习之路!!!之整数、字符串介绍
查看>>
Mysql授权远程登录
查看>>
java4中创建内对象的方法
查看>>
使用Docker Swarm搭建分布式爬虫集群
查看>>