张量和操作

    这是一个介绍性的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)
    特遣部队添加c12),c3.4))
    # # tf.Tensor([4。6.),形状= (2)dtype = float32)
    ## tf.Tensor(25.0, shape=(), dtype=float32)
    ## tf.Tensor(6.0, shape=(), dtype=float32)
    ## tf.Tensor(13.0, shape=(), dtype=float32)

    每一个tf美元张量具有一个形状和一个数据类型:

    x =特遣部队matmul矩阵1ncol =1),矩阵c23.),nrow =1))x
    # # tf.Tensor([[2。3.=(1, 2), dtype=float64)
    # #(1、2)
    # # < dtype:“float64”>

    数组和tf美元张量年代:

    1. 张量可以由加速器内存支持(如GPU、TPU)。
    2. 张量是不可变的。

    R数组兼容性

    TensorFlow tf之间的转换。张量和数组很简单:

    • TensorFlow操作自动将R数组转换为张量。

    方法显式地将张量转换为R数组as.arrayas.matrixas.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主机的图形处理器。

    明确设备位置

    在TensorFlow中,放置指的是如何将单个操作分配(放置)到设备上执行。如前所述,当没有提供明确的指导时,TensorFlow会自动决定哪个设备执行操作,并在需要时将张量复制到该设备。然而,TensorFlow操作可以显式地放在特定的设备上tf美元的设备上下文管理器,例如:

    打印“对CPU: 0:”(特遣部队设备“CPU: 0”), {x < -特遣部队形状10001000))打印(x设备)})打印“对GPU: 0:”(特遣部队设备“GPU: 0”), {x < -特遣部队形状10001000))打印(x设备)})