IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> [Tensorflow系列-3]:Tensorflow基础 - Hello World程序与张量(Tensor)概述 -> 正文阅读

[人工智能][Tensorflow系列-3]:Tensorflow基础 - Hello World程序与张量(Tensor)概述

?作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119580837


目录

1. 导入库及检查版本

2. Hello World

3. 基本数据单元

3.1?Tensorflow支持的数据结构

3.2?数据的类型:dtype=tf.xxx

3.3?数据内容: [[xx,xx], [xx,xx]]

3.4?数据运算的设备:device="xxx"

4. Tensor实例/样本创建概述

5. Tensor的成员

5.1 Tensor的公共属性

5.2 Tensor的公共操作

5.3 Tenosor的运算方法



1. 导入库及检查版本

import numpy as np
import tensorflow as tf

2. Hello World

print("Hello world")
print("tensorflow version:", tf.__version__)

3. 基本数据单元

3.1?Tensorflow支持的数据结构

(1)张量:tensor? (Torch定义了专门的结构)

从Python的List [ ]的数据结构 =》 Numpy.Array =》 Tensorflow的Tensor

  • Python list

数据元素可以是任意类型,数据元素的数据类型可以不相同。

  • Numpy.Array

Numpy数组元素的数据类型是相同的,且必须是数值类型,且通常是2维的,且支持在CPU上运行。

  • Tensorflow?Tensor:

与Numpy.array一样,Tensor中的元素的数据类型是必须相同的,与Numpy大体相同。

Tensor在Numpy.array的基础上,进行了增强:

Tensor中的数据元素可以是任意维度的

Tensor可以支持在GPU上执行

支持自动求导等于深度学习相干的操作。

(2)变量:variable

Python的变量variable =》 深度学习框架的variable

深度学习框架定义了自己专有的variable变量,与Python的变量的区别是 深度学的variable用于存放升级网络的w和b的参数,是可以自动求导数的。

(3)神经网络:nn? (深度学习定义了专门用于神经网络的数据结构)

3.2?数据的类型:dtype=tf.xxx

preview

3.3?数据内容: [[xx,xx], [xx,xx]]

数据的内容,以多维数组的形式[[xx,xx], [xx,xx]]提供给Tensor。

3.4?数据运算的设备:device="xxx"

4. Tensor实例/样本创建概述

与PyTroch不同的是,Tensorflow使用的不是Tensor类模板来创建张量,也没有使用专有的名字“tensor”,而是使用了constant这个专有名词。constant实际上是一个函数名,而不是类模板的名字。

5. Tensor的成员

5.1 Tensor的公共属性

  • xxx.dtype:Tensor数据类型, int、float、?
  • xxx.device:执行的处理器,CPU or GPU
  • xxx.layout:内存布局,稀疏压缩存储和稠密非压缩存储。
  • xxx.shape:张量的形状(维度)

(1)属性的读

#代码示例

#直接构建Tensor内容和维度,内容数据是确定的
a = tf.constant([[1,2],[3,4]]) 
print(a)

print("\n读取tensor的属性")
print(a.device)
# print(a.layout)  #不支持
print(a.dtype)
# print(a.type)   #不支持
# print(a.type()) #不支持
# print(a.size)   #不支持
print(a.shape)
#输出结果

tf.Tensor(
[[1 2]
 [3 4]], shape=(2, 2), dtype=int32)

读取tensor的属性
/job:localhost/replica:0/task:0/device:CPU:0
<dtype: 'int32'>
(2, 2)

(2)属性的配

  • 通过tensor函数进行配置
print("设置数据类型属性")
a = tf.constant([1,2,3], dtype=tf.float32)
print(a)
print (a.dtype)

输出:

设置数据类型属性
tf.Tensor([1. 2. 3.], shape=(3,), dtype=float32)
<dtype: 'float32'>

print("\n设置tensor的device属性:")
a.cpu()  #设置device为CPU
print(a)
print(a.device)

输出:?

设置tensor的device属性:
tf.Tensor([1. 2. 3.], shape=(3,), dtype=float32)
/job:localhost/replica:0/task:0/device:CPU:0
print("\n设置tensor的device属性:")
a.gpu()  #设置device为GPU
print(a)
print(a.device)
tf.Tensor(
[[1 2]
 [3 4]], shape=(2, 2), dtype=int32)
/job:localhost/replica:0/task:0/device:CPU:0

设置tensor的device属性:

.......

RuntimeError: GPU:0 unknown device.

备注:

由于没有安装GPU的环境,因此设置gpu device失败。

5.2 Tensor的公共操作

  • type(): 如上图??
  • size(): 如上图

5.3 Tenosor的运算方法

(1)使用重载后的Python运算符:+、-

(2)使用Torch提供的通用方法:tf.add、tf.sub......

(3)使用Tensor实例自带的成员函数xxx.add()、xxx.sub?=> 不修改tensor实例的值? # 不支持

(4)使用Tensor实例自带“in place”运算: xxx_add()、xxx.sub_=> 直接修改tensor实例的值

也就是说,要完成Tensor的某种运算,有很多种方法和手段。

但tensorflow而言,比Pytorch的运算方法要少,后两者方法在tensorflow中是不支持的。

# 代码示例:

a = tf.constant([1,2,3,4]) 
print(a)
b = tf.constant([5,6,7,8]) 
print(b)

print("\n运算符法:")
c = a + b
print(c)

print("\n全局函数法:")
c = tf.add(a,b)
print(c)

print("\n成员函数法:")
# c = a.add(b)  # 不支持
#  print(c)
输出:

tf.Tensor([1 2 3 4], shape=(4,), dtype=int32)
tf.Tensor([5 6 7 8], shape=(4,), dtype=int32)

运算符法:
tf.Tensor([ 6  8 10 12], shape=(4,), dtype=int32)

全局函数法:
tf.Tensor([ 6  8 10 12], shape=(4,), dtype=int32)

成员函数法:

# tensorflow不支持


作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/119580837

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:23:47  更:2021-08-11 12:24:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:19:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码