返回顶部
首页 > 资讯 > 后端开发 > Python >【TensorFlow】01 Tenso
  • 602
分享到

【TensorFlow】01 Tenso

TensorFlowTenso 2023-01-31 02:01:43 602人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

2018.9.10 一、概述 TF使用数据数据流图进行数值计算,亮点是支持异构设备分布式计算机 常用的ML库有MXNet Torch/PyTorch Theano CNTK Caffe等 0阶张量(纯量),1阶张量(向量),2阶张量(矩

2018.9.10

一、概述

  • TF使用数据数据流图进行数值计算,亮点是支持异构设备分布式计算机
  • 常用的ML库有MXNet Torch/PyTorch Theano CNTK Caffe等
  • 0阶张量(纯量),1阶张量(向量),2阶张量(矩阵)tensor(张量) flow(流动)
  • 编程模式 命令式编程(Torch) 符号式编程(Tensorflow,theano 描述算法流程 放到其他语言执行)
  • TF使用数据流图来进行编程 是一种推断结构
  • TF的高层库()如Kearas(对用户友好,模块化)
  • Deep-learning主要的运算是浮点运算
  • TF的亮点之一是autograph模式
  • TF的功能:设计、训练、部署(唯一一个形成完整生态的ML sys)

二、环境配置

虚拟环境的安装

  1. 使用pip命令安装venv
    sudo pip install virtualenv
  2. cd 项目目录 切换到项目所在的目录
  3. 激活虚拟环境
    virtualenv --system-site-packages venv
  4. 退出venv
    deactivate

    5、查看venv环境的python包版本

    pip freeze

三、科学工具和流程

  • 编译语言C,c++,Fortran 快,优化好,但语法不友好
  • 脚本语言: Matlab 开发友好,收费,基础语言缺乏
    R语言 偏向统计,不能完成所有的任务
  • 高级的pyhton shell:IPython,Jupyter
  • python包:
    Numpy:强大的数值对象操作
    Scipy:高级的数据处理程序 (优化、回归差值等)
    Matplotlib:2D可视化 (不可交互,对3D图像支持不好)

四、Python基础

(一)数据类型

python的变量类型不像C++一样在定义时必须制定参数的变量类型,是一种动态语言

整数

Python可以处理任意大小(没有大小限制)的正负整数,使用0x作为前缀表示十六进制

浮点数(小数)

按照科学计数法表示的数字,比如1.23e9代表$1.23*e^9$

由于储存方式不同,整数永远是精确的,但是浮点数可以四舍五入

字符串

字符串是以单引号或者双引号括起来的任意文本

如果字符串里有很多字符需要转义,为简化可以使用r'',引号内的字符串默认不转义

print('\\\t\\')
\   \
print(r'\\\t\\')
\\\t\\

布尔值

boolean只有True和false两种,其结果可由比较运算,逻辑运算得出(and,or,not)

  • 当两个变量比较时,如果给定的变量值小于100,则使用is运算的得到的两个变量所得bool结果为true,否则为false这是由于python在储存同一个变量是当变量的数值小于100是使用同一块内存,而大于100是则不使用同一块内存
a = 1000
b = 1000
print(a is b)
print(id(a),id(b))
False
4526894320 4526894960
a = 100
b = 100
print(a is b)
print(id(a),id(b))
True
4305331680 4305331680

(二)字符串

在python保存源代码是,需要制定保存为UTF-8编码,当解释器读取时,在开头加上这两行文字(第一行告诉Unix系统这是一个python可执行程序,win会忽略这个注释,第二行是告诉编译器以utf-8的方式读取,否则中文不能正常编码)

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

占位符

在Python中,格式化方式与C相同,使用%实现。%s表示用字符串替换,%d表示用整数替换,有几个%?后面就需要跟几个变量或值,当变量大于2时需要用括号括起来,有一个的话可以省略

print("Hi,my name is %s, I'm %d years old."%('Alex',10))
Hi,my name is Alex, I'm 10 years old.
占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制数

(三)循环

for...in循环

for x in ...就是把每个元素带入变量x,然后执行缩进块的语句

names = ['A','B','C']
for name in names:
    print(name)
A
B
C

使用range(n)可以生成一个迭代器,其值是0 ~ n-1

sum = 0
for i in range(101):
    sum = sum + i
print(sum)
5050

while循环

使用while循环打印100以内所有奇数的和:

sum = 0
n = 99
while n>0:
    sum = sum + n
    n = n - 2
print(sum)
2500

(四)Python数据结构

list(列表)

list是有序的集合,可以随时删除和添加元素

classlist = ['class1','class2','class3']
len(classlist)  #使用len可以获得列表的长度
classlist[0] #使用下标可以访问list的元素(以0开始)
classlist[-1] #使用负下标可以访问倒数的元素
'class3'

列表的插入

classlist.append('class4')  #尾插法
print(classlist)
classlist.insert(1,'class5') #指定索引插入
print(classlist)
['class1', 'class2', 'class3', 'class4']
['class1', 'class5', 'class2', 'class3', 'class4']

列表的删除

classlist.pop()  #如果pop不加参数,则删除最后一个,否则按照索引顺序删除
print(classlist)
['class1', 'class5', 'class2', 'class3']

注意:

  • list中的元素数据类型可以不同
  • list中可以有另外的list
  • list中一个元素也没有,则其长度为0

tuple(元组)

元组的另一名称为有序列表,一旦初始化就不能修改,没有append和pop方法

tuple存在的意义在于tuple不可变,所以代码更安全,如果可能,尽量用tuple代替list

当定义只有一个元素的tuple时,需要将这个元素后面加上一个逗号,因为()可能会产生歧义。Python规定单独出现的小括号内容计算结果使其本身。

t = (1,)  #是(1,)而不是(1)
print(t)
(1,)

注意:

  • 要创建一个内容也不变的tuple必须保证tuple中的每一个元素本身不能变(不允许出现tuple中嵌套list的情况)

dict(字典)

dict使用键-值(key-value)存储,具有很快的查找速度

dic = {'A':95,'B':80,'C':75}
print(dic['A'])
95

修改dic某个key的值:

dic['A']=60
print(dic['A'])
60

对比list与dict:
dict:查找插入速度快,不会因为key的增加而变慢,但浪费内存多
list:查找插入时间随着元素的增加而增加,但占用空间小,浪费内存少

注意:

  • dic是一种用空间换时间的存储结构(hash)
  • key必须是不可变的对象

set(集合)

set与dict类似,是key的集合,但不存储value,没有重复的key

重复的元素在set中被自动过滤掉:

s = set([1,1,2,2,3,3])
print(s)
{1, 2, 3}

其他方法:
add(key)可以添加元素到set中
remove(key)可以删除set中的元素

集合操作:

s1 = set([1,2,3])
s2 = set([2,3,4])
print(s1&s2)
print(s1|s2)
{2, 3}
{1, 2, 3, 4}

(五)切片

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']

取得前三个元素:

L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
print(L[:3])  
#L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3。即索引0,1,2,正好是3个元素
#如果第一索引是0,可以省略
['Michael', 'Sarah', 'Tracy']

也可以负切片(记住倒数第一个元素的索引是 -1):

L[-2:]
['Bob', 'Jack']

前10个数,每两个取一个(第3个参数n为步长,代表隔n个数取出一个):

L = list(range(100))
>>> L[::5]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]
[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]

(五)jupyter使用

魔法命令

import numpy as np
np.reshape??  #在命令后加??可以查看对应命令的帮助文档
  File "<ipython-input-22-38dc740ee985>", line 2
    np.reshape??  #在命令后加??可以查看对应命令的帮助文档
              ^
SyntaxError: invalid syntax
a =[1,3,5]
%run my_file.py  #百分号后面的为魔法命令,可以执行非python的内容
%whos  #魔法命令:查看变量
%ls #支持大部分下的linux命令
%pwd
%timeit a    #使用timeit监测性能
for item in [1,3,5]:
    print(item)
for item in range(10):     #range()可以生成迭代器,等价于range(0,10)
    print(item)

--结束END--

本文标题: 【TensorFlow】01 Tenso

本文链接: https://lsjlt.com/news/185793.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【TensorFlow】01 Tenso
    2018.9.10 一、概述 TF使用数据数据流图进行数值计算,亮点是支持异构设备分布式计算机 常用的ML库有MXNet Torch/Pytorch Theano CNTK Caffe等 0阶张量(纯量),1阶张量(向量),2阶张量(矩...
    99+
    2023-01-31
    TensorFlow Tenso
  • Numpy 01
     Infi-chu: http://www.cnblogs.com/Infi-chu/ import numpy as np # 创建的数组 stus_score = np.array([[80, 88], [82, 81], [84...
    99+
    2023-01-30
    Numpy
  • python-01
    python中的输入   python2.x中为raw_input(),在python3.x中为input(),这两个函数都返回一个字符串对象,函数中的参数为字符串类型的提示语句 python中的数据类型   使用type()函数可以查看...
    99+
    2023-01-30
    python
  • Python 01
    简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且...
    99+
    2023-01-31
    Python
  • 01-redis-introduction
    key-value存储系统。  官方站点:<http://redis.io>  五种数据类型:string、list(链表)、set(集合)、sorted set(有序集合)...
    99+
    2024-04-02
  • 01.初识MySQL
    MySQL理论 1. 数据库 数据: 数据就是一种符号,记录人类认为有价值的东西,例如图片、视频、文字、表格等 从计算机角度来看,就是二进制、16进制的文件 数据库的分类: RDBMS:关系型数据库管理系统 二维表结构,有清楚的...
    99+
    2016-05-23
    01.初识MySQL
  • redis笔记01
    起步 redis简介 redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. redis与其他key-value缓存产品有一下三个特点: redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候...
    99+
    2014-09-19
    redis笔记01
  • Mysql优化01
    Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括: a:表的设计合理化(符合3NF) b:添加适当索引(index)【四种:普通索引,主键索引,唯一索引unique,全文索引】 c:分表技术(水平分割,垂直分割) d...
    99+
    2020-06-19
    Mysql优化01 数据库入门 数据库基础教程
  • 01-mysql5.5.32安装
    [root@mysql1 ~]# whoami root [root@mysql1 ~]# uname -r 2.6.32-358.el6.x86_64 [...
    99+
    2024-04-02
  • (01)Hibernate入门
    1、Hibernate在SSH中的地位SSH序号技术作用1Struts基于mvc模式的应用层框架技术!2Spring创建对象、处理对象的依赖关系以及框架整合!3Hibernate基于持久层的框架(数据访问层...
    99+
    2024-04-02
  • 01、Docker入门
    目录 1、Docker是什么 2、Docker与虚拟化 3、Docker虚拟化的好处 好处一:应用部署方便 好处二:服务器同等配置,性能更优,利用率更高 4、核心概念  5、CentOS7 安装docker(在线方式) 6、镜像 7、Doc...
    99+
    2023-09-04
    linux 运维 服务器
  • 01-Python简介
    人生苦短,我用 Python —— Life is short, you need Python 目标 Python 的起源 Python 解释器 是用 C 语言实现的,并能够调用 C 语言的库文件.  Python(蟒蛇) ...
    99+
    2023-01-30
    简介 Python
  • python learn 01 bas
    Python Learn Part More_Info Content List 1.Python Introduce 1.1 python REPL 1.2 python helloworld.py 1.3 python help...
    99+
    2023-01-31
    learn python bas
  • opencv3.3+TensorFlow
    1、安装Python环境,推荐使用Anaconda,过程不再赘述。2、下载opencv_python3.3.0cp35cp35mwin_amd64.whl或...win32.whl,opencv_python下载地址,下载好后把文件复制到A...
    99+
    2023-01-31
    TensorFlow
  • MySQL数据库01
    MySQL数据库  前言:   随着时代的进步,大数据也逐渐走进大家的生活中,成为大家密不可分的一样东西。因此,作为程序员的我们,要学习并会使用数据库。   什么是数据库?   数据库就是一个文件系统,通过标准的SQL语句获取数...
    99+
    2017-07-09
    MySQL数据库01
  • 【NoSQL】01、NoSQL基础
    一、ACID、分布式、CAP、BASE 理论关系型数据库遵循ACID规则       事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性...
    99+
    2024-04-02
  • 【MongoDB】01、MongoDB基础
    一、MongoDB概述1、MogoDB简介什么是MongoDB MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能...
    99+
    2024-04-02
  • 爬虫入门01
    1. 请求头中最常见的一些重要内容 User-Agent : 请求载体的身份标识(⽤啥发送的请求)Referer: 防盗链(这次请求是从哪个⻚⾯来的 反爬会⽤到)cookie: 本地字符串数据信息(⽤户登录信息, 反爬的token) 2. ...
    99+
    2023-08-30
    爬虫
  • Day-01 Python基础
    一、Python介绍   Python是一门解释型,弱类型,高级开发编程语言;可广泛应用于众多领域,如:网页开发,数据分析,爬虫等众多领域。   目前Python主要应用领域:云计算、web开发、科学运算、人工智能、系统运维、金融。   ...
    99+
    2023-01-30
    基础 Day Python
  • 01-环境搭建
    MTVmodel:模型负责业务数据对象与数据库对象template:模板,负责展示数据view:视图,负责业务逻辑MVCmodel:模型负责业务数据对象与数据库对象view:视图,负责与用户交互的页面controller:控制器,接收用户...
    99+
    2023-01-31
    环境
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作