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

tensorflow基础

windows安装tensorflow

anaconda或者pip安装tensorflow,tensorflow只支持win7 64系统,本人使用tensorflow1.5版本(pip install tensorflow==1.5)

tensorboard

tensorboard只支持chrome浏览器,而且加载过程中可能有一段时间假死状态。
tensorboard --logdir=path启动(logdir需要有tensorflow的运行日志,tensorboard通过日志分析代码)
tensorboard的日志下面需要建文件夹,才能在tensorboard中筛选日志日期,日志以tfevent文件保存
图表有两种连接关系:
- 数据依赖(实线)
- 控制依赖(虚线)
tf.summary.histogram(横轴值,纵轴数量)
tf.summary.image(卷积后的图像特征显示)
tf.summary.scalar name可以使用‘/’划分相同类
tf.summary.merge_all返回tensor计算后,writer.add_summary
what-if tool,path to example栏中输入tfrecord文件路径即可

tensorflow

  • 常量、变量(类实现需要初始化、神经网络方向传播算法中可以被算法修改的值)
  • 静态和动态shap,[2,4]数组的属性shap,1*2,placeholder:相当于形参
  • session.run(tensor)计算tensor值,或者eval,否则值未知

graph、session(只能包含一个graph)、op(图上的节点、输出tensor) eval执行单个节点(tensor转array) run可以多个
学习后的数据保存为模型,避免重复学习(pb文件包含参数和网络图) graph(pbtxt包含网络图) ckpt(包含存储参数)
模型检查点(训练中止和继续)
TFRecords 文件(大数据训练数据使用、使用example对象)
dense tensor(密集张量) sparse tensor(稀疏张量、使用 indices、values、dense_shape指定矩阵中有值的元素)
clip gradients(防止梯度爆炸)
slot(如 MomentumOptimizer 和 AdagradOptimizer 等优化器,有额外的内部变量,可以get_slot获取)

一个输入,输出多个标签 (多标签分类问题、softmax激活函数取概率值最大的几个值,softmax概率值接近0,导致梯度消失,准确率低可用logsoftmax替换,pow(10,input)计算概率)
模型训练的分类数>=2(至少有正负样本),才能保证结果准确性

numpy

np.tobytes转byte数据,np.frombuffer,byte转np
输出分类标签使用one-hot编码(tf.one_hot(label,length=最大数值+1),tf.argmax解码)
pytorch生成one-hot编码如下:torch.zeros(data.shape[0],64).scatter_(1,label.view(64,-1),1)
tensorflow.reshape返回tensorflow、numpy.reshape返回array
numpy广播机制,最后一位相同,或者有一个轴为1

算法

m-p模型->感知器模型->BP算法 CNN、RNN、DNN算法 keras
感知器(线性系统输入微小偏差输出变化不大,输出wx+b)、神经元模型(输出函数o(wx+b)即激励函数,多层激活拟合输入)
多个隐藏层的神经网络模型(深度学习)、隐藏层激励函数必须是非线性的
正向传播算法、反向传播算法(lost函数对参数求导,分析参数的变化曲线)

  • Lost函数:自定义(固定)函数(凹函数使用梯度下降算法容易产生局部最优解,常用的Hinge(svm线性可分,模式识别中的算法)、CrossEntropyLoss、Focal loss、Center Loss)、模型输出和期望值的差距
  • Cost函数【误差函数】:Lost函数的样本平均值,lost单个样本 tf.equal计算准确度(准确度和lost算法不同)

基础的网络结构

  • CNN:卷积神经网,2个卷积层(取特征值,不改变图像大小),2个池化层(缩小数据量,2X2缩小一半,maxpool取最大值池化),1个全连接层(线性变换、全连接层限制输入文件大小,卷积层不限制) cnn通过卷积远算提取图像特征 linear[condv]+acivation网络模型
  • RNN:循环神经网络(有序输入输出,语音文字等,容易出现梯度消失LSTM代替,元素之间独立,每个元素可存储上次参数,内部使用softmax计算概率)
  • GAN:对抗网络(模拟数据、随机数概率统计评估、gan的全局最优解是贝叶斯分类器)
    神经网络模型拟合任何函数(不用多项式函数拟合,线性激活函数不构成多项式函数,而是w(wx+b)+b任是线性组合)
    神经网络层级加深,拟合效果变差,容易出现梯度消失和爆炸,需要使用残差网络RestNet的结构优化
    cnn(图像识别)、rcnn(cnn后做svm分类,目标检测)

图像处理:ImageDataGenerator(keras图像预处理、1张图片随机变换生成多张)
图像标注工具:ImageNet、Labelme(labelme_json_to_dataset命令转换保存的json文件)、

特征提取算法:

  • hog特征(边缘梯度信息)
  • haar特征(像素明暗变化)
  • lbp特征(纹理信息)
  • VOTT(https://github.com/Microsoft/VoTT)

神经网络模型(输入层–隐藏层–输出层)
word2vector结构:
- skip-gram模型(输入层–projection映射层–输出层、输入词汇、输出关联词汇)
- cbow模型(存输入的上下文数据、输出分类后的哈夫曼树【不区分词性】)

激活函数(限制输出范围):

  • sigmod(概率输出0-1,输出接近0容易梯度消失)
  • tanh(-1-1)
  • relu(值域0到无穷大,容易出现梯度爆炸,导数稳定收敛快、sigmod和tanh在0附近收敛快过大数值收敛慢)

梯度下降优化器:
SGD优化器>ADM优化器>Moutain优化器 (消耗时间)

图像处理技术:
物体分类、目标检测、语义分割、实例分割、全景分割

机器学习分类

  • 监督学习:数据拟合(激励函数线性函数无法拟合),输出具体分类,svm(支持向量机、直线拟合分类器),cnn分类器(数据拟合即分类)
  • 无监督学习:输出无固定分类(极大似然估值【贝叶斯分类器最大值】、蒙特卡洛算法【伪随机数算法(有周期性、可预测)】,kmeans算法【随机给定几个区域中心点,遍历所有点计算距离最近中心和重新计算中心点,直到中心点不再变化】)
  • 强化学习:决策问题(Q-learning【DQL深度Q-learning】、随机森林、贪心算法【当前最优解集合,最终局部最优解】)

强化学习可以通过gym小游戏工具来训练
在这里插入图片描述

  • 机器学习:分类问题、聚类问题、回归问题、生成问题

机器学习数学模型

IID(独立同分布,训练和测试数据保证相同的分布,深度加深使用BN算法保证每层输入相同分布)
样本分布均衡,否则训练拟合错误

Tensorflow Demo

import tensorflow as tfhello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)
'Hello, TensorFlow!'a = tf.constant(10.)
b = tf.constant(32.)   #后面加点表示浮点数
sess.run(a + b)       #42.0000
sess.close()

模型问题

模型不收敛:学习率太高、输入样本数太大(每次采样样本数被总样本整除否则需要丢弃不能整出的样本或者特殊处理dataset重复添加样本)、是否启动优化器
模型过拟合:dropout(输入层、或者全连接层、丢弃率训练0.5,测试1) 、L1、L2正则化参数减小方差、BN(1.输入减均值【零均值】2.归一化)
batch normalization批标准化(BN算法),加快收敛和提高准确度,神经网络深度加深后收敛变慢 (保证activation函数输入在[0,1]内,防止梯度消失)
调整样本数可以判断,过拟合和欠拟合
梯度消失:连乘因子小于1,后面的网络层,输入趋于0,参数不发生变化(修改激活函数避免)
梯度爆炸:连乘因子大于1,后面层输入趋于NAN(设置阈值、减小权重)

python图形库

pip install pillow,matplotlib,opencv-python

NL(自然语言)

nltk,文本图形等数据,转换成深度学习的向量输入

命令行

FLAGS = tf.app.flags.FLAGS
tf.app.flags.DEFINE_string(“image”,“png”, “input image file”) (使用-h产生提示)
tf.app.run(main=,argv=)
使用pyc文件发布或者pip install pyinstaller (打包py文件为exe,dist目录中) (AttributeError: ‘str’ object has no attribute 'items’卸载setuptools后重新安装)

分类算法

多标签分类:多个输出分类(sigmod,取大于某个阈值)
多类分类:贝叶斯算法、knn算法(多个二分类或者softmax,取多分类中最大概率argmax)
二分类:决策树、svm(wx+b直线函数分割)、sigmod激活函数(二分类负样本和正样本比例失衡,需要在训练的时候调整数据,使代码dataset样本均衡)
分类方法参考:https://www.cnblogs.com/yanshw/p/10831838.html

准确率、召回率、ROC曲线

正样本和负样本1:4,精准率和召回率都很大时,ROC曲线大于某个阈值、AUC指ROC曲线面积(0-1)值越大越准确(混淆【误差】矩阵)

  • P(正样本) N(负样本)
  • TP predict 和 label 同时为1
    TP += ((pred_choice == 1) & (target.data == 1)).cpu().sum()
  • TN predict 和 label 同时为0
    TN += ((pred_choice == 0) & (target.data == 0)).cpu().sum()
  • FN predict 0 label 1
    FN += ((pred_choice == 0) & (target.data == 1)).cpu().sum()
  • FP predict 1 label 0
    FP += ((pred_choice == 1) & (target.data == 0)).cpu().sum()

p = TP / (TP + FP) 精确度
r = TP / (TP + FN) 召回率
F1 = 2 * r * p / (r + p) 即 2/F1 = 1/r+1/p
acc = (TP + TN) / (TP + TN + FP + FN)

数据集

  • mnist数据集(手写数字图片)
  • cifar数据集(物体图片)

参考

https://www.cnblogs.com/xlturing/p/5844555.html基本数学模型(马里奥通关ai)
https://www.imooc.com/article/40710
https://www.cnblogs.com/Anita9002/p/9284817.html监督学习和无监督学习
https://blog.csdn.net/red_stone1/column/info/15855吴恩达专题

相关文章:

tensorflow基础

windows安装tensorflow anaconda或者pip安装tensorflow,tensorflow只支持win7 64系统,本人使用tensorflow1.5版本(pip install tensorflow1.5) tensorboard tensorboard只支持chrome浏览器,而且加载过程中可能有一段…...

spring_注解笔记

spring使用注解开发 文章目录 1.前提1 Bean2 属性注入3 衍生的注解4.自动装配5 作用域 1.前提 步骤1&#xff1a; 要使用注解开发&#xff0c;就必须要保证AOP包的导入 步骤2&#xff1a; xml文件添加context约束 步骤3&#xff1a; 配置注解的支持 <context:annotation-…...

c++运算符重载

目录 运算符重载的基本概念 重载加号运算符() 类内实现 类外实现 运算符重载碰上友元函数 可重载和不可重载的运算符 可重载的运算符 不可重载的运算符 重载自加自减运算符(a a) 智能指针 重载等号运算符&#xff08;&#xff09; 重载等于和不等运算符&#xff08…...

vue子组件向父组件传参的方式

在Vue中&#xff0c;子组件向父组件传递参数可以通过自定义事件和props属性来实现。下面是一些关键代码示例&#xff1a; 1. 使用自定义事件&#xff1a; 在子组件中&#xff0c;通过 $emit 方法触发一个自定义事件&#xff0c;并传递参数。 <template><button cli…...

代码随想录Day41| 343. 整数拆分 |

343. 整数拆分 class Solution { public:int integerBreak(int n) {vector<int> f(n1,0);f[2]1;for(int i3;i<n;i){for(int j1;j<i-1;j){f[i]max(f[i],max(f[i-j]*j,(i-j)*j));}}return f[n];} }; 96. 不同的二叉搜索树 class Solution { public:int numTrees(int…...

工厂模式-(简单工厂模式)

首先看一下设计模式的六大原则 设计模式的六大原则 1、开闭原则&#xff08;Open Close Principle&#xff09; 开闭原则就是说对扩展开放&#xff0c;对修改关闭。在程序需要进行拓展的时候&#xff0c;不能去修改原有的代码&#xff0c;实现一个热插拔的效果。所以一句话概…...

V8引擎是如何提升对象属性访问速度的?

JavaScript 中的对象是由一组组属性和值的集合&#xff0c;从 JavaScript 语言的角度来看&#xff0c;JavaScript 对象像一个字典&#xff0c;字符串作为键名&#xff0c;任意对象可以作为键值&#xff0c;可以通过键名读写键值。 然而在 V8 实现对象存储时&#xff0c;并没有…...

彩色相机工作原理——bayer格式理解

早期&#xff0c;图像传感器只能记录光的强弱&#xff0c;无法记录光的颜色&#xff0c;所以只能拍摄黑白照片。 1974年,拜尔提出了bayer阵列&#xff0c;发明了bayer格式图片。不同于高成本的三个图像传感器方案&#xff0c;拜尔提出只用一个图像传感器&#xff0c;在其前面放…...

IDEA中DEBUG技巧

Debug 介绍 Debug 设置 如上图标注 1 所示&#xff0c;表示设置 Debug 连接方式&#xff0c;默认是 Socket。Shared memory 是 Windows 特有的一个属性&#xff0c;一般在 Windows 系统下建议使用此设置&#xff0c;相对于 Socket 会快点。 ## Debug 常用快捷键 Win 快捷键M…...

人工智能训练师

人工智能训练师是一个较新的职业&#xff0c;2020年2月才被正式纳入国家职业分类目录。他们主要负责在人工智能产品使用过程中进行数据库管理、算法参数设置、人机交互设计、性能测试跟踪及其他辅助作业。 这个职业的背景源于AI公司从客户&#xff08;用户&#xff09;那里获取…...

【业务功能118】微服务-springcloud-springboot-Kubernetes集群-k8s集群-KubeSphere-OpenELB部署及应用

OpenELB部署及应用 一、OpenELB介绍 网址&#xff1a; openelb.io OpenELB 是一个开源的云原生负载均衡器实现&#xff0c;可以在基于裸金属服务器、边缘以及虚拟化的 Kubernetes 环境中使用 LoadBalancer 类型的 Service 对外暴露服务。OpenELB 项目最初由 KubeSphere 社区发…...

Unity中Shader的模板测试

文章目录 前言什么是模板测试1、模板缓冲区2、模板缓冲区中存储的值3、模板测试是什么&#xff08;看完以下流程就能知道模板测试是什么&#xff09;模板测试就是在渲染&#xff0c;后渲染的物体前&#xff0c;与渲染前的模板缓冲区的值进行比较&#xff0c;选出符合条件的部分…...

Scala 高阶:Scala中的模式匹配

一、概述 Scala中的模式匹配&#xff08;case&#xff09;类似于Java中的switch...case&#xff0c;但是Scala的模式匹配功能更为强大。通过模式匹配&#xff0c;可以匹配更复杂的条件和数据结构&#xff0c;包括常量、类型、集合、元组等。而 Java 的 switch 语句只能用于匹配…...

分子生物学——分子机器

分子生物学——分子机器 文章目录 前言一、2016年度诺贝尔化学奖1.1. 介绍1.2. 什么是分子机器&#xff1f;1.3. 分子机器的意义 总结 前言 对于本次搜集分子生物学领域的一个诺贝尔奖的有关内容的作业 参考文献&#xff1a; https://www.cas.cn/zt/sszt/2016nobelprize/hxj/2…...

【简历优化】这套「实习、初级、中级」测试工程师求职简历模板,建议收藏。

历时2年&#xff0c;7000粉丝问答&#xff0c;帮助上百位“刚培训毕业”、“1~3年经验”的软件测试伙伴&#xff0c;成功入职&#xff01; 我将这些问题内容&#xff0c;会持续更新记录在 「软件测试」求职指南 专栏。 求职简历中的误区 对于简历应该具备哪些模块&#xff0c…...

vue中展示json数据的方法

推荐插件&#xff1a;bin-code-editor (gitee.io) bug-1:编辑器无法显示数据 原因&#xff1a;组件层级套用太深&#xff0c;导致无法显示数据 解决办法&#xff1a;减少在孙子及后代组件中使用插件。...

【SG滤波】三阶滤波、五阶滤波、七阶滤波(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

2013 ~【VUE+ ElementUI】——【上传、下载】进度计算

【VUE ElementUI】——【上传、下载】进度计算 上传&#xff1a;FormData方式上传&#xff0c;监听 onUploadProgress下载&#xff1a;blob文件流下载&#xff0c;监听 onDownloadProgress 上传&#xff1a;FormData方式上传&#xff0c;监听 onUploadProgress <el-upload:…...

android可见即可说实现方案

依赖于科大讯飞的asr识别能力&#xff0c;使用Android无障碍服务获取页面文本作为热词&#xff0c;注册到讯飞api&#xff0c;注册过后语音识别到热词的asr返回,利用WindowManager和无障碍的点击实现可见即可说功能 ## &#x20;无障碍服务获取需要注册的热词package com..mo…...

Pikachu Burte Force(暴力破解)

一、Burte Force&#xff08;暴力破解&#xff09;概述 ​ “暴力破解”是一攻击具手段&#xff0c;在web攻击中&#xff0c;一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录&#xff0c;直到得到正确的结果。 为了提高…...

SpringMVC之JSON返回及异常处理

目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 目录 JSON处理 导入依赖 配置Spring-mvc.xml ResponseBody注解使用 测试 Jackson 定义 用法 常用注解 统一异常处理 为什么要全局异常处理&#xff1f; 异常处理思路 SpringMVC异常分类 综…...

SkyWalking快速上手(六)——告警

文章目录 前言一、什么是SkyWalking的告警功能二、为什么要使用SkyWalking的告警功能1. 及时发现异常情况2. 提高故障处理效率3. 避免数据丢失和损坏4. 提升系统性能和稳定性 三、如何使用SkyWalking的告警功能1. 告警规则2. 告警通知3. 告警持续时间 四、注意事项1、合理设置告…...

docker run:--privileged=true选项解析(特权模式:赋予容器几乎与主机相同的权限)

文章目录 Docker的--privilegedtrue选项1. Docker 容器的安全性1.1 Linux Namespace 和 Capabilities1.2 限制和权限 2. Docker的--privilegedtrue选项2.1 --privilegedtrue的作用2.2 --privilegedtrue的风险 3. 结论 Docker的–privilegedtrue选项 Docker在创建和运行容器时&…...

计算机专业毕业设计项目推荐06-工作室管理系统(Java+Vue+Mysql)

工作室管理系统&#xff08;JavaSpringVueMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现****最后想说的****联系方式** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较…...

Python 文件的读写操作

文章目录 1. 文件对象1.1 文件打开方式1.1.1 打开文件1.1.2 关闭文件1.1.3 访问模式 1.2文件读取1.2.1 read()1.2.2 readline()1.2.3 readlines() 1.3 文件迭代1.4 文件输入1.4.1 write()1.4.2 writelines() 1. 文件对象 文件读写操作&#xff1a; 把大象放冰箱里&#xff0c…...

多线程回顾、集合Collection、Set、List等基本知识

多线程回顾 问: 多线程的两种创建方式? 继承Thread类实现Runnable接口线程池Callable 问:多线程通常会遇到线程安全问题? 什么情况下会遇到线程安全问题? 答:一个数据被多个线程访问(有读有写) 解决这个问题的方式? SE:同步锁 synchronized A : 同步代码块 B : 同步方法…...

分享5款用起来很好用的软件,总有一款适合你

很多软件用起来很好用&#xff0c;但是由于这样那样的原因&#xff0c;一直没什么知名度&#xff0c;但是不代表它们不好用&#xff0c;我的任务就是把这些宝藏分享给大家。 1.图像处理——Photoscissors Photoscissors是一款在线图像背景移除工具&#xff0c;可以让你轻松地从…...

大数据学习1.5-单机Hadoop

1.修改主机信息 vi /etc/hosts 2.修改信息如下(这里第三位一定是自己的IP 每个人都不一样) 192.168.216.140 hadoop01 192.168.216.141 hadoop02 192.168.216.142 hadoop033.修改Hadoop配置信息-1进入配置信息文件 cd /usr/local/hadoop/hadoop-2.7.1/etc/hadoop/ 4.修改Had…...

Cesium对实体元素鼠标点击popup div信息框

一、简介 设置div信息框模板,给实体元素绑定事件,同步空间位置,然后在回调函数弹出信息框。 二、示例源码 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" …...

有多条业务线,mysql建多库多表比较好还是一个库多个表比较好呢?

这个问题的答案取决于您的具体需求。以下是一些需要考虑的因素&#xff1a; 数据独立性&#xff1a;如果您的业务线之间的数据是独立的&#xff0c;并且不太可能需要进行跨业务线的查询&#xff0c;那么将它们分成多个数据库可能是有意义的。这样可以使每个业务线的数据更加独…...

分析网站做的好坏/网络广告营销案例

建一个表 t_hoteladvertise 有如下字段&#xff1a;ID 自动增长(主要)SortID INT (主要)Title NVARCHAR(50) 代码: CREATE proc sp_ehotel_DownAdvertiseID INTasDECLARE SortID intDECLARE TempSortID INTDECLARE TempID INTBEGIN TRANSELECT SortIDSortID from t_hote…...

dede网站百度统计怎么做/市场营销策划方案范文

什么是L1正则化 在机器学习任务中&#xff0c;对于一个参数模型&#xff0c;优化参数时一定伴随着损失函数的建立与优化。 通常不加入L1正则化的损失函数为 JL1(w)L(w)J_{L1}(w) L(w) JL1​(w)L(w) 加入L1正则化的损失函数为 JL1(w)L(w)λ∣w∣J_{L1}(w) L(w) \lambda|w| …...

怎么把网站做成手机版的/百度搜题在线使用

RSA加密解密算法 是非对称加解密算法的一种&#xff0c;也是非常常用的一种方法。 在RSA密码应用中&#xff0c;公钥KU是被公开的&#xff0c;即e和n的数值可以被第三方窃听者得到。破解RSA密码的问题就是从已知的e和n的数值&#xff08;n等于pq&#xff09;&#xff0c;想法求…...

常州网页模板建站/网络推广都有什么方式

[From] https://blog.csdn.net/lovebomei/article/details/79807484 1.Kerberos协议&#xff1a; Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务&#xff…...

网站建设及使用/百度怎么发帖子

一、简单说明 1.思路 把下载的data追加到文件的尾部&#xff0c;直到所有的数据下载完为止。 1.在连通了服务器的时候&#xff0c;创建一个空的文件到沙盒中NSFileManager(文件管理类) 2.创建写数据的文件句柄 3.在接收到服务器返回的数据后&#xff0c;把data写入到创建的空文…...

wordpress网页排版/台湾搜索引擎

第一步&#xff0c;使用ffmpeg将mp4视频转换为ts格式 ffmpeg -y -i input.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb output.ts //input.mp4原文件名称&#xff0c;无指定路径&#xff0c;需手动切换到切片视频目录下进行该命令&#xff0c; //output.ts转换之后…...