TensorFlow 的简单例子

Likegeeks 的头像

·

·

·

6,529 次阅读

在本文中,我们将看一些 TensorFlow 的例子,并从中感受到在定义 张量 tensor 和使用张量做数学计算方面有多么容易,我还会举些别的机器学习相关的例子。

TensorFlow 是什么?

TensorFlow 是 Google 为了解决复杂的数学计算耗时过久的问题而开发的一个库。

事实上,TensorFlow 能干许多事。比如:

  • 求解复杂数学表达式
  • 机器学习技术。你往其中输入一组数据样本用以训练,接着给出另一组数据样本基于训练的数据而预测结果。这就是人工智能了!
  • 支持 GPU 。你可以使用 GPU(图像处理单元)替代 CPU 以更快的运算。TensorFlow 有两个版本: CPU 版本和 GPU 版本。

开始写例子前,需要了解一些基本知识。

什么是张量?

张量 tensor 是 TensorFlow 使用的主要的数据块,它类似于变量,TensorFlow 使用它来处理数据。张量拥有维度和类型的属性。

维度指张量的行和列数,读到后面你就知道了,我们可以定义一维张量、二维张量和三维张量。

类型指张量元素的数据类型。

定义一维张量

可以这样来定义一个张量:创建一个 NumPy 数组(LCTT 译注:NumPy 系统是 Python 的一种开源数字扩展,包含一个强大的 N 维数组对象 Array,用来存储和处理大型矩阵 )或者一个 Python 列表 ,然后使用 tf_convert_to_tensor 函数将其转化成张量。

可以像下面这样,使用 NumPy 创建一个数组:

import numpy as np arr = np.array([1, 5.5, 3, 15, 20])
arr = np.array([1, 5.5, 3, 15, 20])

运行结果显示了这个数组的维度和形状。

import numpy as np
arr = np.array([1, 5.5, 3, 15, 20])
print(arr)
print(arr.ndim)
print(arr.shape)
print(arr.dtype)

它和 Python 列表很像,但是在这里,元素之间没有逗号。

现在使用 tf_convert_to_tensor 函数把这个数组转化为张量。

import numpy as np
import tensorflow as tf
arr = np.array([1, 5.5, 3, 15, 20])
tensor = tf.convert_to_tensor(arr,tf.float64)
print(tensor)

这次的运行结果显示了张量具体的含义,但是不会展示出张量元素。

要想看到张量元素,需要像下面这样,运行一个会话:

import numpy as np
import tensorflow as tf
arr = np.array([1, 5.5, 3, 15, 20])
tensor = tf.convert_to_tensor(arr,tf.float64)
sess = tf.Session()
print(sess.run(tensor))
print(sess.run(tensor[1]))

定义二维张量

定义二维张量,其方法和定义一维张量是一样的,但要这样来定义数组:

arr = np.array([(1, 5.5, 3, 15, 20),(10, 20, 30, 40, 50), (60, 70, 80, 90, 100)])

接着转化为张量:

import numpy as np
import tensorflow as tf
arr = np.array([(1, 5.5, 3, 15, 20),(10, 20, 30, 40, 50), (60, 70, 80, 90, 100)])
tensor = tf.convert_to_tensor(arr)
sess = tf.Session()
print(sess.run(tensor))

现在你应该知道怎么定义张量了,那么,怎么在张量之间跑数学运算呢?

在张量上进行数学运算

假设我们有以下两个数组:

arr1 = np.array([(1,2,3),(4,5,6)])
arr2 = np.array([(7,8,9),(10,11,12)])

利用 TenserFlow ,你能做许多数学运算。现在我们需要对这两个数组求和。

使用加法函数来求和:

import numpy as np
import tensorflow as tf
arr1 = np.array([(1,2,3),(4,5,6)])
arr2 = np.array([(7,8,9),(10,11,12)])
arr3 = tf.add(arr1,arr2)
sess = tf.Session()
tensor = sess.run(arr3)
print(tensor)

也可以把数组相乘:

import numpy as np
import tensorflow as tf
arr1 = np.array([(1,2,3),(4,5,6)])
arr2 = np.array([(7,8,9),(10,11,12)])
arr3 = tf.multiply(arr1,arr2)
sess = tf.Session()
tensor = sess.run(arr3)
print(tensor)

现在你知道了吧。

三维张量

via: https://www.codementor.io/likegeeks/define-and-use-tensors-using-simple-tensorflow-examples-ggdgwoy4u

作者:LikeGeeks 译者:ghsgz 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注