张量和操作
这是一个介绍性的TensorFlow教程,展示了如何:
- 导入所需的包
- 创建和使用张量
- 使用GPU加速
进口TensorFlow
首先,导入tensorflow模块。在TensorFlow 2.0中,默认情况下是打开的。这为TensorFlow提供了一个更具互动性的前端,我们将在后面讨论它的细节。
图书馆(tensorflow)
张量
张量是一个多维数组。类似于数组
对象在R,tf美元张量
对象有一个数据类型和一个形状。此外,tf美元张量
可以驻留在加速器内存中(如GPU)。TensorFlow提供了一个丰富的操作库(tf增加美元
,tf matmul美元
,tf linalg发票美元
等等)消费和生产特遣部队。张量
.这些操作自动转换本机R类型,例如:
## tf.Tensor(3.0, shape=(), dtype=float32)
# # tf.Tensor([4。6.),形状= (2)dtype = float32)
## tf.Tensor(25.0, shape=(), dtype=float32)
特遣部队$reduce_sum(c(1,2,3.))
## tf.Tensor(6.0, shape=(), dtype=float32)
## tf.Tensor(13.0, shape=(), dtype=float32)
每一个tf美元张量
具有一个形状和一个数据类型:
x =特遣部队$matmul(矩阵(1,ncol =1),矩阵(c(2,3.),nrow =1))x
# # tf.Tensor([[2。3.=(1, 2), dtype=float64)
# #(1、2)
# # < dtype:“float64”>
数组和tf美元张量
年代:
- 张量可以由加速器内存支持(如GPU、TPU)。
- 张量是不可变的。
R数组兼容性
TensorFlow tf之间的转换。张量和数组很简单:
- TensorFlow操作自动将R数组转换为张量。
方法显式地将张量转换为R数组as.array
,as.matrix
或as.numeric
方法。当从一个张量转换到一个R中的数组时,总是会有一个内存副本。
# # tf.Tensor([2。),形状= (1)dtype = float32)
# # 1 [1]
GPU加速
许多TensorFlow操作都是使用GPU进行计算来加速的。在没有任何注释的情况下,TensorFlow自动决定一个操作是使用GPU还是CPU——如果有必要,复制CPU和GPU内存之间的张量。操作产生的张量通常由执行操作的设备的内存支持,例如:
## [[1]] ## PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU') ## ## [[2]] ## PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU')
# #[1]”/工作:localhost /副本:0 /任务:0 /设备:CPU: 0”
设备名称
的张量元设备
属性提供承载张量内容的设备的完全限定字符串名称。这个名称编码了许多细节,例如正在执行此程序的主机的网络地址标识符以及该主机中的设备。这是分布式执行TensorFlow程序所必需的。字符串以GPU: < N >
如果张量放在N
-th主机的图形处理器。