当前位置: 首页 > news >正文

【Tensor】(基础篇一) —— 安装TensorFlow和介绍Tensor

安装TensorFlow和介绍Tensor

之前我们已经学了一些简单的回归和神经网络,但程序员之间“不重复造轮子”这个指导思想让我们可以不用每次在使用机器学习算法的时候都进行手动从底层开始搭建,回归很多在sklearn中进行了集成,神经网络中很多内容在TensorFlow中进行了集成。这里我来介绍一下如何使用tensorflow

安装tensorflow

在安装和配置这种环境的时候,我们尽量不要动自己电脑上的基础环境,因为未来或者你已经在进行的不同的项目需要的依赖包和版本都各不相同,一个环境是不能满足我们的要求的。python为我们提供了虚拟环境,最方便且广泛使用的就是Anaconda,如果你还没有使用过虚拟环境,你可以花上十几分钟了解一下我之前写过的一篇虚拟环境介绍博客:图文详解Anaconda虚拟环境的安装和使用及其在编程环境中的应用_虚拟机安装anaconda-CSDN博客,虚拟环境使用很简单,掌握熟练之后你会觉得和在Windows系统中创建一个文件夹一样轻松。

学习一门编程技术最快捷的方法就是阅读其官方文档:关于TensorFlow | TensorFlow中文官网 (google.cn)

让我们创建一个MachineLearning虚拟环境(python为3.6-3.9),在其中导入tensorflow依赖并进行测试,同时安装一下数据分析三剑客nump、pandas和matplotlib用来帮助我们处理数据。

在这里插入图片描述

在学习的过程中,我会推荐你使用jupyter notebook,可以有更强的交互性和阶段反馈,在开发项目的时候使用pycharm,管理各个文件更加方便,你有喜欢用的软件也没问题,操作语言都是python,不会有太大的出入,我在介绍的时候使用jupyter notebook进行。

让我们导入验证一下tensorflow是否安装成功

import tensorflow as tf
import numpy as np
tf.__version__
'2.10.0'

Tensor

张量(Tensor)是一个多维数组,它是标量(0维)、向量(1维)和矩阵(2维)的推广。张量可以被视为具有任意数量维度(也称为轴)的数据结构,每个维度都有固定的大小。

因为在机器学习中,很多的计算都是矩阵计算,包括之前介绍过神经网络中最重要的前向传播等,Tensor就可以非常快速地调用GPU进行这些矩阵运算。我们后续的学习也都是对Tensor进行处理

x = [[1.]]
res = tf.matmul(x,x)
res

上述操作中,先创建了一个list,将其作为参数让tf进行矩阵的乘法操作(matmul意为矩阵相乘),得到的结果就是tf的Tensor结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数据处理中最基础的类型应该是numpy,我们的Tensor类型也可以和numpy类型数组进行转换

将Tensor类型转为numpy数组类型

x = [[1.]]
print(type(x))
res = tf.matmul(x,x)
print(type(res))
y = res.numpy()
print(type(y))
<class 'list'>
<class 'tensorflow.python.framework.ops.EagerTensor'>
<class 'numpy.ndarray'>

numpy类型的数据也可以使用tf直接进行矩阵运算

x = [[1,2],[3,4]]
x_ndarray = np.array(x)
x_tf = tf.add(x,1)
x_tf
<tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[2, 3],[4, 5]])>

http://www.mrgr.cn/news/18757.html

相关文章:

  • 【qt小系统】qt对sqlite数据库文件设置访问密码并以绑定QT表格视图的形式实现与数据库交互
  • 代码随想录算法训练营_day35
  • 【高阶数据结构】二叉树的创建、存储方式(顺序与链式)、遍历方法(递归与非递归)(精美图解+完整代码)
  • 公司分家了, 代码怎么分啊?
  • 【Qt笔记】QUndoView控件详解
  • 多账户在亚马逊电商和 Dropshipping 中的优势!
  • 搞定——pip 升级失败!pip._vendor.urllib3.exceptions.ReadTimeoutError 这个闹心的问题
  • 缓存类型以及读写策略
  • OpenAI API: Can I remove the line break from the response with a parameter?
  • js之深度理解扩展运算符(Spread Operator)
  • RAG项目实战
  • 算法笔试-编程练习-M-01-24
  • idea2023.3安装不上通义灵码(插件无法下载)解决方法(非常简单)
  • Linux 进程概念 进程状态 fock函数讲解
  • 刷题记录(2)
  • ABAP OO面向对象设计
  • 【数据结构】Set的使用与注意事项
  • SpringBoot集成Redis——RedisTemplate
  • 科研习惯 [4] 学会表达
  • 大规模语言模型开发基础与实践