TensorFlow 2.0推荐使用Keras 构建和学习神经网络 。
从TensorFlow 2.0默认情况下会启用eager模式执行。 这为TensorFlow提供了一个更加互动的前端节。
登录后复制
from __future__ import absolute_import, division, print_functionimport tensorflow as tf1.2.
张量(TF.tensors)是TensorFlow的数据类型,类似NumPy ndarry,可以常驻Gpu中进行各种操作。
示例:
登录后复制
from __future__ import absolute_import, division, print_functionimport tensorflow as tfprint(tf
.add(1, 2)) # tf.Tensor(3, shape=(), dtype=int32)print(tf.add([3, 8], [2, 5]))
# tf.Tensor([ 5 13], shape=(2,), dtype=int32)print(tf.square(6))
# tf.Tensor(36, shape=(), dtype=int32)print(tf.reduce_sum([7, 8, 9]))
# tf.Tensor(24, shape=(), dtype=int32)print(tf.square(3) + tf.square(4))
# tf.Tensor(25, shape=(), dtype=int32)1.2.3.4.5.6.7.8.9.
张量与Numpy ndarrays可互相转换,TensorFlow操作自动将NumPy ndarrays转换为Tensors。
NumPy操作自动将Tensors转换为NumPy ndarrays,它们会共享内存。但如果Tensors在GPU的时候不能共享。
登录后复制
from __future__ import absolute_import, division,
print_functionimport tensorflow as tfimport numpy as npndarray = np.ones([2,2])tensor = tf
.multiply(ndarray, 36)print(tensor)'''tf.Tensor([[36. 36.] [36. 36.]], shape=(2, 2), dtype=float64)'''
# 用np.add对tensorflow进行加运算print(np.add(tensor, 1))'''[[37. 37.] [37. 37.]]'''
# 转换为numpy类型print(tensor.numpy())'''[[36. 36.] [36. 36.]]'''1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.
18.19.20.21.22.23.24.
使用GPU进行计算可以加速许多TensorFlow操作。 如果没有任何注释,TensorFlow会自动决定是使用GPU还是CPU进行操作 - 如有必要,可以复制CPU和GPU内存之间的张量。 由操作产生的张量通常由执行操作的设备的存储器支持,例如:
登录后复制
from __future__ import absolute_import, division, print_functionimport tensorflow
as tfimport numpy as npx = tf.random.uniform([3, 3])print('Is GPU availabel: %s' % tf
.test.is_gpu_available())print('Is the Tensor on gpu #0: %s' % x.device.endswith('GPU:0'))print(x.device)
'''/job:localhost/replica:0/task:0/device:CPU:0'''1.2.3.4.5.6.7.8.9.10.
登录后复制
from __future__ import absolute_import, division, print_functionimport tensorflow as tfimport numpy as
npimport timedef time_matmul(x): start = time.time() for loop in range(10):
tf.matmul(x, x) result = time.time() - start print('10 loops: {:0.2}ms'.format(1000*result))
# 强制使用CPUprint('On CPU:')with tf.device('CPU:0'): x = tf.random.uniform([1000, 1000])
# 使用断言验证当前是否为CPU0 assert x.device.endswith('CPU:0') time_matmul(x)
# 如果存在GPU,强制使用GPUif tf.test.is_gpu_available(): print('On GPU:') with tf
.device.endswith('GPU:0'): x = tf.random.uniform([1000, 1000])
# 使用断言验证当前是否为GPU0 assert x.device.endswith('GPU:0')
time_matmul(x)1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.
登录后复制
# 从列表中获取tensords_tensors = tf.data.Dataset.from_tensor_slices([6,5,4,3,2,1])
# 创建csv文件import tempfile_, filename = tempfile.mkstemp()print(filename)with open(filename, 'w')
as f: f.write("""Line 1Line 2Line 3""")# 获取TextLineDataset数据集实例ds_file = tf
.data.TextLineDataset(filename)1.2.3.4.5.6.7.8.9.10.11.12.13.
使用map,batch和shuffle等转换函数将转换应用于数据集记录。
登录后复制
ds_tensors = ds_tensors.map(tf.square).shuffle(2).batch(2)ds_file = ds_file.batch(2)1.2.
登录后复制
print('ds_tensors中的元素:')for x in ds_tensors: print(x)
# 从文件中读取的对象创建的数据源print('\nds_file中的元素:')for x in ds_file: print(x)1.2.3.4.5.6.7.
输出:
登录后复制
ds_tensors中的元素:tf.Tensor([36 16], shape=(2,), dtype=int32)tf.Tensor([25 4], shape=(2,), dtype=int32)tf
.Tensor([1 9], shape=(2,), dtype=int32)ds_file中的元素:tf.Tensor([b'Line 1' b'Line 2'], shape=(2,),
dtype=string)tf.Tensor([b'Line 3'], shape=(1,), dtype=string)1.2.3.4.5.6.7.8.
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删