tensorflow的计算思想

tensorflow的计算思想


本文主要参考了TensorFlow中文社区的介绍!特此声明。


什么是数据流图(Data Flow Graph)?

数据流图用“结点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size可动态调整”的多维数据数组,即“张量”(tensor)。张量从图中流过的直观图像是这个工具取名为“Tensorflow”的原因。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行地执行运算。

这里写图片描述


高度的灵活性

TensorFlow不是一个严格的“神经网络”库。只要你可以将你的计算表示为一个数据流图,你就可以使用Tensorflow。你来构建图,描写驱动计算的内部循环。我们提供了有用的工具来帮助你组装“子图”(常用于神经网络),当然用户也可以自己在Tensorflow基础上写自己的“上层库”。定义顺手好用的新复合操作和写一个python函数一样容易,而且也不用担心性能损耗。当然万一你发现找不到想要的底层数据操作,你也可以自己写一点c++代码来丰富底层的操作。


一个小示例

我使用随机数来生成数据集,并展示了如何编写一个简单的bp神经网络程序:

import tensorflow as tf

from numpy.random import RandomState

batch_size = 8;

w1 = tf.Variable(tf.random_normal([2,3],stddev=1,seed=1));
w2 = tf.Variable(tf.random_normal([3,1],stddev=1,seed=1));

x  = tf.placeholder(tf.float32,shape=(None,2),name='x-input');
y_ = tf.placeholder(tf.float32,shape=(None,1),name='y-input');

a  = tf.matmul(x,w1);
y  = tf.matmul(a,w2);

cross_entropy = - tf.reduce_mean(y_ * tf.log(tf.clip_by_value(y,1e-10,1.0)));
train_step    = tf.train.AdamOptimizer(0.001).minimize(cross_entropy);

rdm = RandomState(1);
dataset_size = 128;

X  = rdm.rand(dataset_size,2);
Y  = [[int(x1+x2<1)] for (x1,x2) in X ];

with tf.Session() as sess:
    init_op = tf.initialize_all_variables();
    sess.run(init_op);
    print sess.run(w1);
    print sess.run(w2);

    STEPS = 5000;
    for i in range(STEPS):
        start = (i*batch_size)%dataset_size;
        end   = min(start+batch_size,dataset_size);

        sess.run(train_step,feed_dict={x:X[start:end],y_:Y[start:end]});
        if i%1000==0:
            total_cross_entropy = sess.run(cross_entropy,feed_dict={x:X,y_:Y});
            print("After %d training steps,cross entropy on all data is %g" %(i,total_cross_entropy));

    print sess.run(w1);
    print sess.run(w2);                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 TensorFlow 教程,包括了 TensorFlow 的基本概念和使用方法。 1. 安装 TensorFlow 首先,需要安装 TensorFlow。可以通过以下命令来安装: ``` pip install tensorflow ``` 如果需要使用 GPU 版本的 TensorFlow,可以使用以下命令安装: ``` pip install tensorflow-gpu ``` 2. 导入 TensorFlow 安装完成后,需要在 Python 代码中导入 TensorFlow: ```python import tensorflow as tf ``` 3. 创建计算TensorFlow 的核心思想计算图(Computational Graph)。在 TensorFlow 中,首先需要创建一个计算图,然后将数据流传递到图中进行计算。 可以使用以下代码来创建一个简单的计算图: ```python # 创建计算图 graph = tf.Graph() # 将计算流程放入计算图中 with graph.as_default(): a = tf.constant(2) b = tf.constant(3) c = tf.add(a, b) ``` 上面的代码中,首先创建了一个计算图 `graph`,然后使用 `with graph.as_default()` 将计算流程放入计算图中。在计算流程中,首先创建了两个常量 `a` 和 `b`,然后使用 `tf.add` 函数将它们相加得到 `c`。 4. 运行计算图 创建计算图后,需要使用 TensorFlow 的 `Session` 来运行计算图。可以使用以下代码来运行计算图: ```python # 创建 Session with tf.Session(graph=graph) as sess: # 运行计算流程 result = sess.run(c) print(result) ``` 上面的代码中,首先创建了一个 `Session` 对象,并将计算图 `graph` 传入。然后使用 `sess.run` 方法来运行计算图,并将计算结果赋值给变量 `result`。最后使用 `print` 函数输出结果。 完整代码如下: ```python import tensorflow as tf # 创建计算图 graph = tf.Graph() with graph.as_default(): a = tf.constant(2) b = tf.constant(3) c = tf.add(a, b) # 创建 Session with tf.Session(graph=graph) as sess: # 运行计算流程 result = sess.run(c) print(result) ``` 输出结果为: ``` 5 ``` 这就是一个简单的 TensorFlow 教程。在实际使用中,需要深入了解 TensorFlow 的各种操作和函数来完成更加复杂的任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值