variable, tensor与numpy区别

Judy ·
更新时间:2024-11-13
· 957 次阅读

一、名词解释

在Tensorflow里:

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

张量(tensor):
张量可以看作是多重向量空间映射到实数域空间。说白了就是多维数组。

标量是张量(实数值映射到实数值) 向量是张量 矩阵是张量 矩阵的矩阵是张量

所以在tensorflow 中:

constant 常量张量 variable 变量,一般是可以被更更新或更改的数值

而numpy虽然也提供n位数组,但不提供创建张量函数和求导,也不提供GPU支持

b = np.array( [ (1.5,2,3), (4,5,6) ] )

二、Variable与numpy之间的相互转化

1 直接转化

# -*- coding: utf-8 -*- import tensorflow as tf # 创建张量 t = tf.constant([1, 2, 3, 4], tf.float32) # 创建会话 session = tf.Session() # 张量转化为ndarray array = session.run(t) # 打印其数据类型与其值 print(type(array)) print(array) [ 1. 2. 3. 4.]

2 利用Tensor的成员函数eval

# -*- coding: utf-8 -*- import tensorflow as tf # 创建张量 t = tf.constant([1, 2, 3, 4], tf.float32) # 创建会话 session = tf.Session() # 张量转化为ndarray array = t.eval(session=session) # 打印其数据类型与其值 print(type(array)) print(array) [ 1. 2. 3. 4.]

3.ndarray转化为tensor
TensorFlow 通过 convert_to_tensor 这个函数进行转换,代码如下:

# -*- coding: utf-8 -*- import tensorflow as tf import numpy as np # 创建ndarray array = np.array([1, 2, 3, 4], np.float32) # 将ndarray转化为tensor t = tf.convert_to_tensor(array, tf.float32, name='t') # 打印输出 print(t) Tensor("t:0", shape=(4,), dtype=float32)
作者:敲键盘的大蚂蚁



NumPy tensor

需要 登录 后方可回复, 如果你还没有账号请 注册新账号