TensorFlow学习笔记之四——源码分析之基本操作

例子源码地址:

https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/1%20-%20Introduction/basic_operations.py

根据网上的入门例子,一点点的熟悉代码和TensorFlow。对这个基本的例子,做一个注释,备忘之余分享给同样入门的初学者。

import tensorflow as tf

a = tf.constant(2)
b = tf.constant(3)
#把a,b定义为tensorflow的常量,并且赋值。
with tf.Session() as sess:
    print "a=2, b=3"
    print "Addition with constants: %i" % sess.run(a+b)
    print "Multiplication with constants: %i" % sess.run(a*b)
#使用Session的run()输出a+b和a*b的结果。使用with tf.Session() as sess这种用法,在sess.run()结束之后,不用调用sess.close()释放资源。
a = tf.placeholder(tf.int16)
b = tf.placeholder(tf.int16)
#把a,b定义成为tf.int16类型的占位符,并没有放具体的数值进去。
add = tf.add(a, b)
mul = tf.mul(a, b)
#在a,b两个占位符之上,定义了两个操作,add和mul。
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})
#给a,b赋值,并且对他们进行前文定义的add和mul操作。
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix1, matrix2)
#定义两个常量矩阵,并且为这两个矩阵定义了一个matmul操作product。
with tf.Session() as sess:
    result = sess.run(product)
    print result
#运行product操作,并且将结果result输出。
时间: 2024-07-29 12:57:31

TensorFlow学习笔记之四——源码分析之基本操作的相关文章

Yaf框架学习笔记之源码笔记

  从了解PHP不久就想着用扩展的方式来实现PHP的程序框架,后来了解鸟哥已经实现了yaf简单的C实现PHP的MVC框架,故将其源代码研究了好几遍.yaf的优势是简单,高效,高性能,框架长驻内存,程序配置内存化,其实主要是运行速度比大部分PHP的框架都快. 1.在内核扩展中加载PHP用户空间类文件 文件:yaf_loader.c 函数:int yaf_loader_import( char path, int len int use_path TSRMLS_DC) 行号:333 2.自动加载器

springboot源码分析6-springboot之PropertySource类初探

摘要:本小节重点梳理一下PropertySource类的相关结构以及职责,本文的学习前提是学习了springboot源码分析5-springboot之命令行参数以及原理一文. 在springboot源码分析5-springboot之命令行参数以及原理一文中,我们看到了实例化Source类的时候,会去先实例化其父类SimpleCommandLinePropertySource.SimpleCommandLinePropertySource类的构造函数中直接解析了命令行参数以及值,然后返回封装好的C

Cocos2d-x学习笔记之Hello World源码分析_C 语言

首先我们来说一下游戏的原理,游戏类似于一场电影,早期的电影不就是靠一张张的图片放出来的吗?把场景人物什么的画在一幅幅图片上,然后从第一张图片开始播放就可以了.游戏更是如此,其实我们玩的游戏看到的画面都是美工做出来的,我们程序员要做的事情是组织这些图片,比如先弄个背景图片,然后在某一个坐标上放置一个人物的图片,我们写好程序,控制这个图片的移动路径,等机器运行的时候每秒都要刷新画面,我们就看到人物动了起来.而刷新页面的快慢就是我们所说的帧率,这个在程序中我们可以控制.整体的意思就是游戏不过是一些图片

java io学习(三) 管道的简介,源码分析和示例

管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例 本章,我们对java 管道进行学习. java 管道介绍 在java中,PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流. 它们的作用是让多线程可以通过管道进行线程间的通讯.在使用管道通信时,必须将PipedOutputStream和PipedInputStream配套使用. 使用管道通信时,大致的流程是:我们在线程A中向PipedOutputStr

java io学习(二)ByteArrayOutputStream的简介,源码分析和示例

ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream) 前面学习ByteArrayInputStream,了解了"输入流".接下来,我们学习与ByteArrayInputStream相对应的输出流,即ByteArrayOutputStream. 本章,我们会先对ByteArrayOutputStream进行介绍,在了解了它的源码之后,再通过示例来掌握如何使用它. ByteArrayOutputStream 介绍 ByteArrayOutputS

java io学习(一)ByteArrayInputStream的简介,源码分析和示例

ByteArrayInputStream的简介,源码分析和示例(包括InputStream) 我们以ByteArrayInputStream,拉开对字节类型的"输入流"的学习序幕. 本章,我们会先对ByteArrayInputStream进行介绍,然后深入了解一下它的源码,最后通过示例来掌握它的用法. ByteArrayInputStream 介绍 ByteArrayInputStream 是字节数组输入流.它继承于InputStream. 它包含一个内部缓冲区,该缓冲区包含从流中读取

Spark源码分析之四:Stage提交

        各位看官,上一篇<Spark源码分析之Stage划分>详细讲述了Spark中Stage的划分,下面,我们进入第三个阶段--Stage提交.         Stage提交阶段的主要目的就一个,就是将每个Stage生成一组Task,即TaskSet,其处理流程如下图所示:         与Stage划分阶段一样,我们还是从handleJobSubmitted()方法入手,在Stage划分阶段,包括最好的ResultStage和前面的若干ShuffleMapStage均已生成,那

OkHttp 3.7源码分析(五)——连接池

OkHttp3.7源码分析文章列表如下: OkHttp源码分析--整体架构 OkHttp源码分析--拦截器 OkHttp源码分析--任务队列 OkHttp源码分析--缓存策略 OkHttp源码分析--多路复用 接下来讲下OkHttp的连接池管理,这也是OkHttp的核心部分.通过维护连接池,最大限度重用现有连接,减少网络连接的创建开销,以此提升网络请求效率. 1. 背景 1.1 keep-alive机制 在HTTP1.0中HTTP的请求流程如下: 这种方法的好处是简单,各个请求互不干扰.但在复杂

jQuery中deferred对象详解及源码分析

jQuery的deferred对象使用详解 jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本.每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5.0版本开始引入的一个新功能--deferred对象.这个功能很重要,未来将成为jQuery的核心方法,它彻底改变了如何在jQuery中使用ajax.为了实现它,jQuery的全部ajax代码都被改写了.但是,它比较抽象,初学者很难掌握,网上的教程也不多.所以,我把自己的学习笔记整理出来了,希望对大家有用. 本文不