深度学习:Tensorflow的基本概念和张量

简介: 深度学习:Tensorflow的基本概念和张量
计算密集型(cpu计算)
    -tensorflow
IO密集型(web,磁盘)
    -django
    -scrapy

1、基本概念

tensor 张量-数据结构

op 专门运算的操作节点

graph 图:整个程序的结构

session 会话:运算程序的图


图默认已经注册:

一组表示tf.Operation计算单位的对象

和 tf.Tensor表示操作之间流动的数据单位的对象


获取图

graph = tf.get_defaul_graph()

默认图,相当于给程序分配内存


创建图

g = tf.Graph()
with g.as_default():
    pass

op: 只要使用tensorflow的API定义函数都是OP

tensor: 指代的就是数据


tensorflow

-前端系统:定义程序的图的机构

-后端系统:运算图结构


会话:

-运行图的机构

-分配资源计算

-掌握资源(变量的资源,队列,线程)


使用 1

session = tf.Session()
session.run()
session.close()

使用 2 上下文管理器


with tf.Session() as session:
    session.run()

Session参数:

1、可以指定图 graph参数

2、显示运行设备

config = tf.ConfigProto(log_device_placement=True)


命令行交互


>> import tensorflow as tf
>> tf.InteractiveSession()

只要有会话开启,就可以使用


varible.eval()


session.run()

varible.eval()
session.run()

参数:


fetches 变量,列表,元组

namedtuple,dict,OrderDict

重载的运算符,默认会给运算符重载为op了O型


注意:不是op不能运算


feed_dict 训练数据,实时提供数据去进行训练

placeholder 占位符


# None为不固定长度
plt = tf.placeholder(tf.float32, shape=[None, 3])
data = [[1, 2, 3], [4, 5, 6]]
with tf.Session() as session:
    session.run(plt, fead_dict={plt: data})

张量

numpy as np
数组 ndarray  矩阵      张量 tensor = ndarray
0维           2维       
1维
2维

2、基本数据格式

一个类型化的N维度数组(tf.Tensor)

Tensor(名称, 维度形状, 数据类型)


常用数据类型

tf.float32

tf.int32


张量的属性

graph图

op操作名

name 字符串描述

shaple 形状

0维()

1维(4)

2维(3, 4)

3维(3, 4, 2)


Numpy reshape 直接修改形状


动态形状和静态形状

在于有没有生成一个新的张量数据


静态形状

tf.Tensor.get_shape()

tf.Tensor.set_shape()

静态形状,一旦张量形状固定了,不能再次设置,不能跨维度修改

1D-> 1D 2D->2D


动态形状

tf.reshape()

动态形状可以去创建一个新的张量, 元素数量要匹配

1D -> 2D 1D->3D


# 静态形状
plt = tf.placeholder(tf.float32, (None, 2))
plt.set_shape((3, 2))
# 动态形状
plt_reshape = tf.reshape(plt, (2, 3))

3、张量操作

3.1 创建张量

# 所有元素为0的张量
tf.zeros(shape, dtype=tf.float32, name=None)
tf.zeros_like(tensor, dtype=None, name=None)
tf.ones(shape, dtype=tf.float32, name=None)
tf.ones_like(tensor, dtype=None, name=None)
tf.fill(dims, value, name=None)
# 创建一个常数张量
tf.constant(value, dtype=None, shape=None, name="Const")
# 正态分布(高斯分布)随机张量
tf.truncated_normal(shape, mean=0.0,stddev=1.0, dtype=tf.float32, seed=None, name=None)
# 从正态分布中取随机数
tf.random_normal(shape, mean=0,0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

方差:数据的离散程度

平均值,标准差


张量变换


3.2 改变类型

tf.string_to_number(string_tensor, out_type=None, name=None)
tf.cast(x, dtype, name=None)

3.3 形状变换

tf.shape(input, name=None)
tf.reshape(tensor, shape, name=None)
# 切片扩展
tf.concat(values, axis, name="concat")

代码示例


import tensorflow as tf
tf.InteractiveSession()
a = [[1, 2, 3], [4, 5, 6]]
b = [[7, 8, 9], [10, 11, 12]]
c = tf.concat([a, b], axis=0)
c.eval()
Out[8]: 
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]], dtype=int32)
d = tf.concat([a, b], axis=1)
d.eval()
Out[10]: 
array([[ 1,  2,  3,  7,  8,  9],
       [ 4,  5,  6, 10, 11, 12]], dtype=int32)

4、Tensor提供的API

算术运算

基本数据函数

矩阵运算

减少维度的运算(求平均值)

序列运算

相关文章
|
19天前
|
机器学习/深度学习 TensorFlow API
TensorFlow与Keras实战:构建深度学习模型
本文探讨了TensorFlow和其高级API Keras在深度学习中的应用。TensorFlow是Google开发的高性能开源框架,支持分布式计算,而Keras以其用户友好和模块化设计简化了神经网络构建。通过一个手写数字识别的实战案例,展示了如何使用Keras加载MNIST数据集、构建CNN模型、训练及评估模型,并进行预测。案例详述了数据预处理、模型构建、训练过程和预测新图像的步骤,为读者提供TensorFlow和Keras的基础实践指导。
153 59
|
8天前
|
机器学习/深度学习 人工智能 算法
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
海洋生物识别系统。以Python作为主要编程语言,通过TensorFlow搭建ResNet50卷积神经网络算法,通过对22种常见的海洋生物('蛤蜊', '珊瑚', '螃蟹', '海豚', '鳗鱼', '水母', '龙虾', '海蛞蝓', '章鱼', '水獭', '企鹅', '河豚', '魔鬼鱼', '海胆', '海马', '海豹', '鲨鱼', '虾', '鱿鱼', '海星', '海龟', '鲸鱼')数据集进行训练,得到一个识别精度较高的模型文件,然后使用Django开发一个Web网页平台操作界面,实现用户上传一张海洋生物图片识别其名称。
89 7
海洋生物识别系统+图像识别+Python+人工智能课设+深度学习+卷积神经网络算法+TensorFlow
|
11天前
|
机器学习/深度学习 人工智能 TensorFlow
TensorFlow 是一个由 Google 开发的开源深度学习框架
TensorFlow 是一个由 Google 开发的开源深度学习框架
20 3
|
18天前
|
机器学习/深度学习 算法 数据可视化
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
|
8天前
|
机器学习/深度学习 人工智能 算法
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集('蜜蜂', '甲虫', '蝴蝶', '蝉', '蜻蜓', '蚱蜢', '蛾', '蝎子', '蜗牛', '蜘蛛')进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django搭建Web网页端可视化操作界面,实现用户上传一张昆虫图片识别其名称。
131 7
【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50
|
8天前
|
机器学习/深度学习 人工智能 算法
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
球类识别系统,本系统使用Python作为主要编程语言,基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集 '美式足球', '棒球', '篮球', '台球', '保龄球', '板球', '足球', '高尔夫球', '曲棍球', '冰球', '橄榄球', '羽毛球', '乒乓球', '网球', '排球'等15种常见的球类图像作为数据集,然后进行训练,最终得到一个识别精度较高的模型文件。再使用Django开发Web网页端可视化界面平台,实现用户上传一张球类图片识别其名称。
101 7
【球类识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+TensorFlow
|
1天前
|
机器学习/深度学习 人工智能 算法
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
乐器识别系统。使用Python为主要编程语言,基于人工智能框架库TensorFlow搭建ResNet50卷积神经网络算法,通过对30种乐器('迪吉里杜管', '铃鼓', '木琴', '手风琴', '阿尔卑斯号角', '风笛', '班卓琴', '邦戈鼓', '卡萨巴', '响板', '单簧管', '古钢琴', '手风琴(六角形)', '鼓', '扬琴', '长笛', '刮瓜', '吉他', '口琴', '竖琴', '沙槌', '陶笛', '钢琴', '萨克斯管', '锡塔尔琴', '钢鼓', '长号', '小号', '大号', '小提琴')的图像数据集进行训练,得到一个训练精度较高的模型,并将其
6 0
【乐器识别系统】图像识别+人工智能+深度学习+Python+TensorFlow+卷积神经网络+模型训练
|
14天前
|
机器学习/深度学习 人工智能 算法
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
【机器学习】深度探索:从基础概念到深度学习关键技术的全面解析——梯度下降、激活函数、正则化与批量归一化
21 3
|
2天前
|
机器学习/深度学习 数据采集 自动驾驶
深度学习在图像识别中的应用与挑战
随着人工智能技术的飞速发展,深度学习已成为推动现代科技进步的核心力量之一。特别是在图像识别领域,深度学习模型通过模拟人脑处理视觉信息的方式,显著提高了识别的准确性和效率。本文将探讨深度学习在图像识别中的关键技术应用,分析面临的主要挑战,并展望未来发展趋势。
|
2天前
|
机器学习/深度学习 算法 自动驾驶
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用及其面临的主要挑战。通过分析最新的科研数据和实验结果,本文揭示了深度学习模型如何超越传统算法,实现更高的准确性和效率。同时,文章也指出了当前深度学习在图像识别中存在的问题,如过拟合、数据偏差和计算资源需求等,并提出了可能的解决策略。最后,本文对未来深度学习技术的发展方向进行了展望。