T3再入门

TensorFlow再入门

在2.0环境中运行1.x代码, 使用一下语句
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

使用GPU
导入TensorFlow 查看版本
tf.version
查看当前主机上的运算设备
gpus = tf.config.experimental.list_physical_devices(device_type="GPU")
cpus = tf.config.experimental.list_physical_devices(device_type="CPU")
在指定CPU上运行
with tf.device('/cpu:0'):
cpu_a = tf.random.normal([10000, 1000])
cpu_b = tf.random.normal([1000, 2000])
cpu_c = tf.matmul(cpu_a, cpu_b)
查看GPU是否可用
tf.test.is_gpu_available()
在指定GPU上运行
with tf.device('/gpu:0'):
gpu_a = tf.random.normal([10000, 1000])
gpu_b = tf.random.normal([1000, 2000])
gpu_c = tf.matmul(gpu_a, gpu_b)
创建函数cpu_run() 和 gpu_run()
def cpu_run():
with tf.device('/cpu:0'):
cpu_a = tf.random.normal([10000, 1000])
cpu_b = tf.random.normal([1000, 2000])
c = tf.matmul(cpu_a, cpu_b)
return c

    def gpu_run():
        with tf.device('/gpu:0'):
            gpu_a = tf.random.normal([10000, 1000])
            gpu_b = tf.random.normal([1000, 2000])
            c = tf.matmul(gpu_a, gpu_b)
        return c 
比较在CPU和GPU上执行乘法操作的时间 -- 使用timeit工具统计
    cpu_time = timeit.timeit(cpu_run, number=10)
    gpu_time = timeit.timeit(gpu_run, number=10)
        cpu_time
            Out[30]: 4.104530872000055
        gpu_time
            Out[31]: 0.004487383999958183
            
    cpu_time = timeit.timeit(cpu_run, number=100)
    gpu_time = timeit.timeit(gpu_run, number=100)
        cpu_time
            Out[33]: 38.681798154000035
        gpu_time
            Out[34]: 0.23337887200000296

TensorFlow2.0特性
An end-to-end opens source machine learning platform
end-to-end:端到端
open source:开源, 开放设计和实现框架
machine learning:机器学习生态系统
动态图机制(Eager executio)
每次运行会建立和调试动态图
任然保留了静态图
可以在程序调试阶段使用动态图,部署阶段使用静态图。

框架特性
    多种环境支持
        移动设备、PC、服务器、集群、云端、本地、浏览器、嵌入式设备
    支持分布式模式
        TensorFlow自动检测GPU和CPU,充分利用它们并行、分布的执行
    简洁高效
        构建、训练、迭代模型:Eager Execution , Keras
        部署阶段:转化为静态图,提高执行效率
    社区支持

张量-Tensor:tf的基本数据对象 所有运算都是在Tensor中进行 CPU环境下, 张量和Numpy数组共享同一段内存
其实就是多维数组
Python中的list - 在内存中不连续存放,动态指针数组,读写效率低,占用内存空间大
Numpy的ndarray - 在内存中连续存放,存储空间小,读取和写入速度快,存在内存中,只能在CPU中运算,不能主动运算和检测利用GPU使用
Tensor:可以告诉运行于GPU和TPU之上, 支持嵌入式、CPU、单机多卡、多机多卡等复杂环境,
创建Tensor对象 - 由Tensor类实现
tf.constant(value, dtype, shape)函数:创建张量
value - 数字/Python列表/Numpy数组
dtype - 元素的数据类型
shape - 张量的形状
张量.numpy() - 获取张量的Numpy数组
tf.cast(x, dtype) - 改变张量中的元素类型 由低到高
tf.is_tensor() - 判断是否是张量
isinstance() - (数据、类型) 判断这个数据是不是这个类型

特殊张量
    全0张量
        tf.zeros(shape, dtype = tf.folat32)
    全1张量
        tf.ones(shape, dtype = tf.folat32)
    元素值相同
        tf.fill(dims, value) - dims是形状
        tf.constant(value = 9, shape = [2,3])
    随机数张量 -- 正态分布
        tf.random.normal(shape, mean, stddev, dtype) -- mean 均值(默认0), stddev 标准差(默认1)
    创建随机数张量 -- 截断正态分布
        tf.random.truncated_normal(shape, mean, stddev, dtype)
    设置随机种子  
        tf.random.set_seed()
    创建均匀分布张量 
        tf.random.uniform(shape, minval, maxval, dtype) 前闭后开
    随机打乱 -- 只打乱第一维数据
        tf.random.shuffle()
    创建序列
        tf.range(start, limit, delta = 1, dtype) delta-步长
        
Tensor属性
    ndim   
    shape  
    dtype
    shape()
    size()
    rank()

维度变换

张量的存储和视图
    逻辑组织
    物理组织.
改变张量的形状
    tf.reshape(tensor, shape)  shape = -1 自动推导出长度
多维张量的轴:张量的维度 同Numpy

增加和删除维度 -- 只改变视图, 不改变存储
    tf.expand_dims(input, axis)
    tf.squeeze(input, axis) -- 只能删除长度为1的维度
交换维度 -- 改变视图,改变存储顺序
    tf.transpose(a, perm) -- perm = [1, 0] 各个轴的顺序
拼接和分割
    tf.concat(tensors, axis)
    tf.split(value, num_or_size_splits, axis=0) [1:2:1]分割为3个张量
堆叠和分解
    tf.stack(values, axis)
    tf.unstack(values, axis)

部分采样
索引和切片 -- 同Numpy

数据提取
    gather(params, indices) -- 索引列表,将给定张量中队友元素提取
    gather(params, axis, indices) -- 多维采样
    gather_nd()

张量运算 -- x, y 逐元素计算
加减乘除运算
tf.add(x, y) -- 加
tf.sub(x, y) -- 减
tf.multiply(x, y) -- 乘
tf.divide(x, y) -- 除
tf.mod(x, y) -- 取模

幂运算 & 对数运算
    tf.pow(x, y)  --  x的y次幂
    tf.square(x)  --  x的平方
    tf.sqrt(x)  --  x的平方根
    tf.exp(x)  --  x的e次方
    tf.math.log(x)  --  计算自然对数,底数为x

可以利用运算符来完成常用操作。
    a+b a-b a*b a/b a%b a//b a**b 
。。。太多了,自己敲不过来,  略。

当张量和Numpy数组共同运算时, Tensor操作则会自动将Numpy转化为Tensor,反之亦然

向量乘法
    tf.matmul()  /  @运算符
    
数据统计:在某个维度上、或者全局的统计值
    tf.reduce_xxx()
求最值的索引
    tf.argmax()
    tf.argmin()

机器学习(Machine learning): 从数据中学习

学习算法:从数据中产生模型的算法
机器学习是通过学习算法从数据中学习模型的过程
学习数据
数据集/样本集
样本
属性/特征
标记/标签 有标记-监督学习
模型/假设/学习器
真相/真实
监督学习
回归 - 预测连续值
分类 - 预测离散值

无监督学习 -- 在样本数据没有标记的情况下,挖掘出数据内部蕴含的关系
聚类
距离

半监督学习 -- 将有监督学习和无监督学习相结合 大量没有标记的数据和少量标记数据共同学习

一元线性回归 -- y = wx + b
w:权重
b:偏置值
实现:
加载样本数据: x, y
学习模型:计算w, b
预测房价:y = wx + b

多元回归 -- 回归中包括两个或两个以上的自变量
多元线性回归 -- 因变量和自变量之间是线性关系

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容