Tensorflow基本概念

  • 使用图(graphs)来表示计算任务
  • 在被称之为会话(Session)的上下文(context)中执行图
  • 使用tensor表示数据
  • 通过变量(Variable)维护状态
  • 使用feed和fetch可以为任意的操作赋值或者从其中获取数据

Tensorflow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op
(operation),一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。Tensor 看作是
一个 n 维的数组或列表。图必须在会话(Session)里被启动。

Tensorflow结构

创建图,启动图

#2-1 创建图,启动图
#创建一个常量op
m1=tf.constant([[3,3]])
#创建一个常量op
m2=tf.constant([[2],[3]])
#创建一个矩阵乘法op
product=tf.matmul(m1,m2)
print(product) with tf.compat.v1.Session() as sess: # run(product)触发了图中的3个op
result = sess.run(product)
print(result)

结果为:

变量

#2-2变量
#创建一个变量初始化0
state=tf.Variable(0,name='counter')
#创建op,作用是使state加1
new_value=tf.add(state,1)
#赋值op
update=tf.compat.v1.assign(state,new_value) with tf.compat.v1.Session() as sess:
#变量初始化
sess.run(tf.compat.v1.global_variables_initializer())
print(sess.run(state))
for _ in range(5):
sess.run(update)
print(sess.run(state))

输出为:

Fetch and Feed

#2-3Fetch and Feed
#Fetch
input1=tf.constant(3.0)
input2=tf.constant(2.0)
input3=tf.constant(5.0) add=tf.add(input2,input3)
mul=tf.multiply(input1,add) with tf.compat.v1.Session() as sess:
result=sess.run([mul,add])
print(result) #Feed
#创建占位符
input1=tf.compat.v1.placeholder(tf.float32)
input2=tf.compat.v1.placeholder(tf.float32)
output=tf.multiply(input1,input2) with tf.compat.v1.Session() as sess:
#feed的数据以字典传入
print(sess.run(output,feed_dict={input1:[7.],input2:[2.]}))

输出为:

线性模型

import numpy as np

#使用np生成100个随机点
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2 #构造一个线性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b #二次代价函数
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行训练的优化器
optimizer=tf.compat.v1.train.GradientDescentOptimizer(0.2) #最小化代价函数
train=optimizer.minimize(loss) #对变量进行初始化
init=tf.compat.v1.global_variables_initializer() with tf.compat.v1.Session() as sess:
sess.run(init)
for step in range(201):
sess.run(train)
if step%20==0:
print(step,sess.run([k,b]))

输出为:

Tensorflow-基础使用的更多相关文章

  1. TensorFlow基础

    TensorFlow基础 SkySeraph  2017 Email:skyseraph00#163.com 更多精彩请直接访问SkySeraph个人站点:www.skyseraph.com Over ...

  2. TensorFlow基础笔记(0) 参考资源学习文档

    1 官方文档 https://www.tensorflow.org/api_docs/ 2 极客学院中文文档 http://www.tensorfly.cn/tfdoc/api_docs/python ...

  3. TensorFlow基础笔记(3) cifar10 分类学习

    TensorFlow基础笔记(3) cifar10 分类学习 CIFAR-10 is a common benchmark in machine learning for image recognit ...

  4. TensorFlow基础剖析

    TensorFlow基础剖析 一.概述 TensorFlow 是一个使用数据流图 (Dataflow Graph) 表达数值计算的开源软件库.它使 用节点表示抽象的数学计算,并使用 OP 表达计算的逻 ...

  5. 05基于python玩转人工智能最火框架之TensorFlow基础知识

    从helloworld开始 mkdir mooc # 新建一个mooc文件夹 cd mooc mkdir 1.helloworld # 新建一个helloworld文件夹 cd 1.helloworl ...

  6. tensorflow基础篇-1

    1.使用占位符和变量 import tensorflow as tf import numpy as np #-----创建变量并初始化----------- def first(): my_var= ...

  7. TensorFlow应用实战 | TensorFlow基础知识

    挺长的~超出估计值了~预计阅读时间20分钟. 从helloworld开始 mkdir 1.helloworld cd 1.helloworldvim helloworld.py 代码: # -*- c ...

  8. tensorflow基础练习:线性模型

    TensorFlow是一个面向数值计算的通用平台,可以方便地训练线性模型.下面采用TensorFlow完成Andrew Ng主讲的Deep Learning课程练习题,提供了整套源码. 线性回归 多元 ...

  9. TensorFlow 基础概念

    初识TensorFlow,看了几天教程后有些无聊,决定写些东西,来夯实一下基础,提供些前进动力. 一.Session.run()和Tensor.eval()的区别: 最主要的区别就是可以使用sess. ...

  10. TensorFlow 基础知识

    参考资料: 深度学习笔记目录 向机器智能的TensorFlow实践 TensorFlow机器学习实战指南 Nick的博客 TensorFlow 采用数据流图进行数值计算.节点代表计算图中的数学操作,计 ...

随机推荐

  1. AddressSanitizer —— ASAN分析内存错误

    简介 AddressSanitizer 是一个性能非常好的C/C++ 内存错误探测工具. 它由编译器的插桩模块和替换了malloc函数的运行时库组成. 这个工具可以探测如下这些类型的错误: 对堆.栈和 ...

  2. P4735 最大异或和 01 Trie

    题目描述 给定一个非负整数序列 \(\{a\}\),初始长度为\(n\). 有 \(m\) 个操作,有以下两种操作类型: \(A\ x\):添加操作,表示在序列末尾添加一个数 \(x\),序列的长度 ...

  3. Nginx 配置日志路径(nginx.conf没有写log路径,所以debug的时候找不到日志)

    缘由:nginx.conf没有写log路径,所以debug的时候找不到日志,遂在conf文件里写入了log路径 Setp1.nginx默认日志路径: /var/log/nginx Setp2.conf ...

  4. 关于eclipse反编译插件不起作用问题的解决

    1.首先我的eclipse版本是 Version: Photon Release (4.8.0),小伙伴们可以通过 help>>About eclipse IDE 来查看自己的eclips ...

  5. Raft算法系列教程4:日志不一致的解决

    网络不可能一直处于正常情况,因为Leader或者某个Follower有可能会崩溃,从而导致日志不能一直保持一致.因此存在以下三种情况: (1)Follower缺失当前Leader上存在的日志条目.(2 ...

  6. JVM内存设置多大合适?Xmx和Xmn如何设置?

    JVM内存设置多大合适?Xmx和Xmn如何设置?   问题:新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢? 分析:依 ...

  7. Linux 时间同步 02 ntpd、ntpdate的区别

    Linux 时间同步 02 ntpd.ntpdate的区别 目录 Linux 时间同步 02 ntpd.ntpdate的区别 [一]这样做不安全. [二]这样做不精确. [三]这样做不够优雅. ntp ...

  8. 关于try catch块执行流程

    代码: package test; public class FinallyTest { public static void main(String[] args) { try { // proce ...

  9. linux系统重启后提示An error occurred during the file system check.

    一.问题描述 生产环境中一台浪潮NF8480M3外观红灯报警,鉴于无法登陆带外管理口,只能对服务器进行断电重启操作 二.问题现象 重启后进入开机过程并报错,正常来说进入此界面后直接输入root密码即可 ...

  10. 关于.NET中的控制反转(一)- 概念与定义

    一.控制反转 1:类与类的依赖 依赖是面向对象中用来描述类与类之间一种关系的概念.两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务,这样的两个对象之间主要体现为依赖关系 ...