1.对TensorFlow的基本操作

import tensorflow as tf
import os
os.environ["CUDA_VISIBLE_DEVICES"]=""
a=tf.constant(2)
b=tf.constant(3)
with tf.Session() as sess:
print("a:%i" % sess.run(a),"b:%i" % sess.run(b))
print("Addition with constants: %i" % sess.run(a+b))
print("Multiplication with constant:%i" % sess.run(a*b)) a=tf.placeholder(tf.int16)
b=tf.placeholder(tf.int16)
add=tf.add(a,b)
mul=tf.multiply(a,b)
with tf.Session() as sess:
print("Addition with variables: %i" % sess.run(add,feed_dict={a:2,b:3}))
print("Multiplication with variables: %i" % sess.run(mul,feed_dict={a:2,b:3})) with tf.Session() as sess:
matrix1=tf.constant([[3.,3.]])
matrix2=tf.constant([[2.],[2.]])
product=tf.matmul(matrix1,matrix2)
result=sess.run(product)
print(result)

结果截图

2.线性回归操作

import  tensorflow  as  tf
import numpy as np
import matplotlib.pyplot as plt
import os
os.environ["CUDA_VISIBLE_DEVICES"]="" # 设置训练参数,learning_rate=0.01,training_epochs=1000,display_step=50。
#Parameters
learning_rate=0.01
training_epochs=1000
display_step=50 # 创建训练数据
#training Data
train_X=np.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,
7.042,10.791,5.313,7.997,5.654,9.27,3.1])
train_Y=np.asarray([1.7,2.76,2.09,3.19,1.694,1.573,3.366,2.596,2.53,1.221,
2.827,3.465,1.65,2.904,2.42,2.94,1.3])
n_samples=train_X.shape[0] # 构造计算图,使用变量Variable构造变量X,Y
#tf Graph Input
X=tf.placeholder("float")
Y=tf.placeholder("float") # 设置模型的初始权重
#Set model weights
W=tf.Variable(np.random.randn(),name="weight")
b=tf.Variable(np.random.randn(),name='bias') # 构造线性回归模型
#Construct a linear model
pred=tf.add(tf.multiply(X,W),b) # 求损失函数,即均方差
#Mean squared error
cost=tf.reduce_sum(tf.pow(pred-Y,2))/(2*n_samples) # 使用梯度下降法求最小值,即最优解
# Gradient descent
optimizer=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) # 初始化全部变量
#Initialize the variables
init =tf.global_variables_initializer() # 使用tf.Session()创建Session会话对象,会话封装了Tensorflow运行时的状态和控制。
#Start training
with tf.Session() as sess:
sess.run(init) # 调用会话对象sess的run方法,运行计算图,即开始训练模型。
#Fit all training data
for epoch in range(training_epochs):
for (x,y) in zip(train_X,train_Y):
sess.run(optimizer,feed_dict={X:x,Y:y})
#Display logs per epoch step
if (epoch+1) % display_step==0:
c=sess.run(cost,feed_dict={X:train_X,Y:train_Y})
print("Epoch:" ,'%04d' %(epoch+1),"cost=","{:.9f}".format(c),"W=",sess.run(W),"b=",sess.run(b))
print("Optimization Finished!") # 打印训练模型的代价函数。
training_cost=sess.run(cost,feed_dict={X:train_X,Y:train_Y})
print("Train cost=",training_cost,"W=",sess.run(W),"b=",sess.run(b)) # 可视化,展现线性模型的最终结果。
#Graphic display
plt.plot(train_X,train_Y,'ro',label='Original data')
plt.plot(train_X,sess.run(W)*train_X+sess.run(b),label="Fitting line")
plt.legend()
plt.show()

结果截图

3.逻辑回归

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("/home/yxcx/tf_data",one_hot=True)
import os
os.environ["CUDA_VISIBLE_DEVICES"]="" #Parameters
learning_rate=0.01
training_epochs=25
batch_size=100
display_step=1 #tf Graph Input
x=tf.placeholder(tf.float32,[None,784])
y=tf.placeholder(tf.float32,[None,10]) #Set model weights
W=tf.Variable(tf.zeros([784,10]))
b=tf.Variable(tf.zeros([10])) #Construct model
pred=tf.nn.softmax(tf.matmul(x,W)+b) #Minimize error using cross entropy
cost=tf.reduce_mean(-tf.reduce_sum(y*tf.log(pred),reduction_indices=1)) #Gradient Descent
optimizer=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost) #Initialize the variables
init=tf.global_variables_initializer() #Start training
with tf.Session() as sess:
sess.run(init)
#Training cycle
for epoch in range(training_epochs):
avg_cost=0
total_batch=int(mnist.train.num_examples/batch_size)
# loop over all batches
for i in range(total_batch):
batch_xs,batch_ys=mnist.train.next_batch(batch_size)
#Fit training using batch data
_,c=sess.run([optimizer,cost],feed_dict={x:batch_xs,y:batch_ys}) #Conpute average loss
avg_cost+= c/total_batch
if (epoch+1) % display_step==0:
print("Epoch:",'%04d' % (epoch+1),"Cost:" ,"{:.09f}".format(avg_cost))
print("Optimization Finished!")
#Test model
correct_prediction=tf.equal(tf.argmax(pred,1),tf.argmax(y,1))
# Calculate accuracy for 3000 examples
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
print("Accuracy:",accuracy.eval({x:mnist.test.images[:3000],y:mnist.test.labels[:3000]}))

结果截图:

4.K邻近算法

import  numpy  as  np
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import os
os.environ["CUDA_VISIBLE_DEVICES"]=""
mnist =input_data.read_data_sets("/home/yxcx/tf_data/MNIST_data",one_hot=True)
# mnist=input_data.read_data_sets("MNIST_data",one_hot=True,source_url='http://yann.lecun.com/exdb/mnist/')
Xtr,Ytr=mnist.train.next_batch(5000)
Xte,Yte=mnist.test.next_batch(200) #tf Graph Input
xtr=tf.placeholder("float",[None,784])
xte=tf.placeholder("float",[784])
distance =tf.reduce_sum(tf.abs(tf.add(xtr,tf.negative(xte))),reduction_indices=1)
pred=tf.argmin(distance,0)
accuracy=0
init=tf.global_variables_initializer()
#Start training
with tf.Session() as sess:
sess.run(init)
for i in range(len(Xte)):
#Get nearest nerighbor
nn_index=sess.run(pred,feed_dict={xtr:Xtr,xte:Xte[i,:]})
print("Test",i ,"Prediction:",np.argmax(Ytr[nn_index]),"True Class:",np.argmax(Yte[i]))
if np.argmax(Ytr[nn_index])==np.argmax(Yte[i]):
accuracy+=1./len(Xte)
print("Done!")
print("accuacy:" ,accuracy)

结果截图:

注:在3和4实验所使用数据集路径是不需要修改的,在运行程序时需要联网,会自动下载数据集。因为网络原因,可能会失败。如果失败后需多运行几次,就可以成功

对代码中用到的一些方法即参数进行记录:

1. x=tf.placeholder(dytype,shape,name)

三个参数含义为:

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

2.tf.Variable(initializer,name)

参数含义为:

  1.initializer表示初始化

  2.name:名称

3.tf.zeros( shape, dtype=tf.float32, name=None )

参数含义:

  1.第一个参数可以理解为数组,如代码中的tf.zeros([784,10])  理解为784行10列

  2.类型

  3.名称

4.tf.nn.softmax()

含义:将向量归结为0-1之间,使特征更明显

5.reduce_mean(input_tensor,axis=None,keep_dims=False,name=None,reduction_indices=None)

该方法用于计算张量的各个维度上的元素的平均值.

  1.input_tensor:要减少的张量.应该有数字类型.

  2.axis:要减小的尺寸.如果为None(默认),则减少所有维度.必须在[-rank(input_tensor), rank(input_tensor))范围内.

  3.keep_dims:如果为true,则保留长度为1的缩小尺寸.

  4.name:操作的名称(可选).

  5.reduction_indices:axis的不支持使用的名称.

6.tf.train.GradientDescentOptimizer

  自适应学习器

关于深度学习之TensorFlow简单实例的更多相关文章

  1. 深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

    紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把N ...

  2. 【原创 深度学习与TensorFlow 动手实践系列 - 4】第四课:卷积神经网络 - 高级篇

    [原创 深度学习与TensorFlow 动手实践系列 - 4]第四课:卷积神经网络 - 高级篇 提纲: 1. AlexNet:现代神经网络起源 2. VGG:AlexNet增强版 3. GoogleN ...

  3. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...

  4. 深度学习调用TensorFlow、PyTorch等框架

    深度学习调用TensorFlow.PyTorch等框架 一.开发目标目标 提供统一接口的库,它可以从C++和Python中的多个框架中运行深度学习模型.欧米诺使研究人员能够在自己选择的框架内轻松建立模 ...

  5. 深度学习之TensorFlow构建神经网络层

    深度学习之TensorFlow构建神经网络层 基本法 深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层是最重要也是深度最多的,通过TensorFlow,python代码可 ...

  6. 深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装

    一.硬件采购 近年来,人工智能AI越来越多被人们所了解,尤其是AlphaGo的人机围棋大战之后,机器学习的热潮也随之高涨.最近,公司采购了几批设备,通过深度学习(TensorFlow)来研究金融行业相 ...

  7. 截图:【炼数成金】深度学习框架Tensorflow学习与应用

    创建图.启动图 Shift+Tab Tab 变量介绍: F etch Feed 简单的模型构造 :线性回归 MNIST数据集 Softmax函数 非线性回归神经网络   MINIST数据集分类器简单版 ...

  8. Ubuntu16.04搭建深度学习框架——TensorFlow

    TensorFlow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库,说白了,就是一个库. 小编自己在Ubuntu搭建了深度学习框架TensorFlow,感觉挺简单,现 ...

  9. 深度学习之TensorFlow安装与初体验

    深度学习之TensorFlow安装与初体验 学习前 搞懂一些关系和概念 首先,搞清楚一个关系:深度学习的前身是人工神经网络,深度学习只是人工智能的一种,深层次的神经网络结构就是深度学习的模型,浅层次的 ...

随机推荐

  1. Vue组件传值,父传子,子传父,非父子组件

    vue3中传值方式: 1.父组件向子组件传值 父组件Blog.vue <template> <div id="blog"> <Alert v-if=& ...

  2. Xshell的使用以及常用命令

    工具/原料 Xshell 方法/步骤 打开软件,点击新建,在主机哪里写入要访问的ip地址,名称随意 点击文件之后,再点击打开: 就可以看到刚才新建的会话了: 点击连接,就会显示下面的画面,输入用户名, ...

  3. 好用的 Chrome 插件

    这些好用的 Chrome 插件,提升你的工作效率   本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可 ...

  4. 第七次java实验报告

    Java实验报告 班级 计科二班 学号20188437 姓名 何磊 完成时间 2019/10/25 评分等级 实验四 类的继承 实验内容 )总票数1000张:(2)10个窗口同时开始卖票:(3)卖票过 ...

  5. git 添加本地项目到远程仓库 记录一下命令

    1.初始化 git init 2.关联远程仓库 git remote add origin 你的仓库地址 3.加入到本地仓库 git add * 4.推送(强推).如果不想强推 ,可以先执行下 git ...

  6. [Python3] 033 异常

    目录 异常 1. 简介 2. 异常的分类 3. 出现异常小例子 例子 4. 异常处理 5. 解决异常小例子 5.1 例子1 5.2 例子2 5.3 例子3 5.4 例子4 6. 手动引发异常 6.1 ...

  7. win10 64支持承载网络

    在intel官网找到对应型号的网卡驱动. 下载win7版本的,更新驱动.安装完毕之后还要在设备管理里面更新2019 7 30这个版本的驱动. 英特尔® PROSet/无线软件和面向 IT 管理员的驱动 ...

  8. node工具之nodemon

    nodemon nodemon是一种工具,可以自动检测到目录中的文件更改时通过重新启动应用程序来调试基于node.js的应用程序. 安装 npm install -g nodemon //或 npm ...

  9. WPF中Matrix介绍

    最近在做一些图形变换操作的功能,图形变换涉及大学中的矩阵运算部分的知识,又重新复习了一下矩阵.这里做一下记录.由于不知道矩阵如何输入,一个个截图又麻烦,所以这里就全部用截图了^-^.

  10. php和java语法区别

    Java和PHP的基本语法基本相同,其实大部分的语言的基本语法也都相同,但是他们还是有一些细微的区别: 1.PHP是一种脚本语言,代码在服务器上执行,而结果以纯文本返回浏览器. 2.PHP能够运行在各 ...