- 博客(33)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 【神经网络笔记】——TensorFlow2.x自定义回调函数Callbacks
【神经网络笔记】——TensorFlow2.x自定义回调函数Callbacks背景实例关键点总结背景在未知训练迭代次数的情况下,动态确定每个训练需要的迭代次数,需要设置自定义回调函数,配置acc或mse损失到达一定程度后停止训练实例import tensorflow as tfclass earlyStop(tf.keras.callbacks.Callback): def __init__(self,mode,acc_threshold=0.95,loss_threshold=0.0
2022-02-26 22:49:44 1090 1
原创 【童年游戏回忆】——扳机游戏代码复现
背景90后小时候玩的都是自创的游戏,踢沙包、踢足球(把纸弄成球,包N层)、跳方格、挖沙子、堆泥巴、挖坑道、骑自行车、荡秋千、打卡片、叠元宝、猜猪蹄四角、拍手、跳皮筋、翻花绳、转笔、弹射笔、弹射纸球、画漫画、超能nono撞击挤压、斗鸡、骑马打仗、剪刀石头布等手势博弈游戏,其中扳机作为斗智斗勇的博弈游戏,有其内在的规律和不确定性、刺激性,因此进行游戏的代码复现。但不只是完全复现,还进行了优化,优化了血量,原来是1次生命,现在是多次机会,可玩性提高了。同时代码运行也能够回合制的形式展示双方的状态信息,更便
2021-11-13 15:38:39 3439
原创 【VBA宏编程】——Excel操作
背景Office的编程语言较老,和现有高级语言相差较多,导致入门以及编写差异较大,编写和调试不方便,所以一直没考虑过使用VBA进行Office编程,但最近有个需求,是在无高级编程语言环境的内网主机上进行表格自动化处理,所以必须得用表格自带函数实现简单逻辑以及VBA实现复杂逻辑。...
2021-09-08 11:08:26 1060
原创 【论文阅读】——(1)Generative Adversarial Nets
背景Generative Adversarial Nets是GAN的开山之作,介绍了GAN的基本思想,有理论分析有实践效果。论文摘要我们提出了一个通过对抗过程估计生成模型的新框架,其中我们同时训练了两个模型:一个捕获数据分布的生成模型G和一个估计来自训练数据而非G的样本概率的判别模型D。G的训练程序是使D出错的概率最大化。这个框架对应于一个minimax两人博弈。在任意函数G和D的空间中,存在一个唯一解,G恢复训练数据分布,D在G生成的训练数据集空间中处处预测真实数据的概率等于1/2。在G和D由多层
2021-09-08 10:52:51 250
原创 【tensorflow2源码修复】—— 解决不能修改layer_name属性值
问题描述tf2合并了keras,绝大部分操作tf2和keras是相同的效果,但有的报错,比如在集成学习时,在定义了多个基类模型并训练好后,在集成时报错层名有重复的,是因为默认基类模型的层名是按照默认名命名的,所以有重复的(在定义了相同类型的层时),为解决报错,需要修改层名(两种解决报错的思路:1)去除判断层名是否重复的代码,但在其他代码使用该框架时可能出现相同层名却无法及时判定异常的Bug,这样弊大于利;2)增加配置层名的set方法,这样弊端就是层名成员变量可以被外部修改了,其实没觉得是弊端,所以利远大于
2021-09-07 21:32:24 582 1
原创 【tensorflow2源码修复】——解决Cannot convert a symbolic Tensor (lstm/strided_slice:0) to a numpy array.
问题描述自己使用最开始的tensorflow2.1在运行一段定义了LSTM层的网络代码时不报错,但使用新pip install的tensorflow2.1则运行报错如题所示,往往需要修改源码,比如在model.save时报错不能编码,则需要找到报错的地方修改去掉encode的部分,但有的问题就不是那么直接了,比如报错如题所示解决思路同一个tensorflow版本,结果运行结果不同,只能说明源码不同有问题,所以使用不同的编译器同时debug模式执行同一段代码,对比执行过程的代码,找到不同之处进行覆盖修
2021-09-07 17:16:24 3548
原创 【神经网络+数学】——(5)神经网络求解二元方程组问题
背景求解方程组问题(线性非线性均可,不带微积分)问题描述xy+x3+y3=11yxy+x^3+y^3=11yxy+x3+y3=11yx2y2+x2+2y2=10x^2y^2+x^2+2y^2=10x2y2+x2+2y2=10不限制xy范围,实际解为x=2 y=1注意俩方程也可能解出来多套解,我只是先设定了实际解的一组解,然后构造的方程组,所以还可能存在其他解神经网络思路:参考遗传算法求解方程组的思路,将评估函数设定为每个方程移项(将等号右侧变为0)后等号左侧的平方和(遗传算法需要构造平方
2021-07-08 17:21:08 1846 2
原创 【星球两点距离】——最短距离计算理论和代码实现
背景三体中有宇宙的坐标(三维空间坐标),使用欧氏距离计算即可;但具体到每个星球(球形)上的两点坐标(经纬度坐标系)的距离计算则不能使用欧氏距离,因为这是具有物理实际含义的工程距离计算问题,无法穿过地下到达目标点,所以只能像蚂蚁一样绕着球面行进到目标点,我称之为“蚂蚁找食物问题”,因为蚂蚁肯定是想法设法以最短的路径找到食物(目标点),所以这里也就符合本博客的任务,最短距离的计算(使用遗传算法、蚁群算法也是可以的,但这里是得到两点坐标后计算精确值,即解析法)。理论介绍地球表面两地之间的最短距离是通过这两
2021-07-06 12:15:29 1355
原创 【离线环境配置】——离线安装pyinstaller
背景有同学希望在离线环境下使用光盘导入的方式获取pyinstaller,在线方式pip install即可,同时在Scripts目录下生成pyinstaller.exe即可在命令行中调用pyinstaller命令。但离线方式需要考虑离线包的下载(包括依赖包,麻烦就在于依赖包)和安装顺序(依赖的顺序是特定的,所以安装各依赖包的顺序有讲究,否则会报错,默认pip install A是先在已安装的库中寻找A是否存在,不存在则确认依赖的B、C、D是否已安装,如果没有安装则会自动联网下载,离线状态下会多次尝试联网R
2021-07-06 11:20:08 6865 3
原创 【神经网络+数学】——(4)神经网络求解二元偏微分问题(二阶偏微分)
背景前面几篇博客介绍了神经网络应用到积分、一元N阶微分的原理、方法并实践了可行性,取得了较好的拟合效果,现在针对偏微分方程PDE进行最后的攻关,完成该部分攻关后即基本掌握了神经网络应用到方程求解的原理方法以及实践代码的自主可控,其实多元N阶微分如果不是偏微分方程则可表示为(以一阶微分为例)dxdtdydt+dxdt+dydt+x(t)+y(t)+2=0\frac{dx}{dt}\frac{dy}{dt}+\frac{dx}{dt}+\frac{dy}{dt}+x(t)+y(t)+2=0dtdxdtd
2021-06-26 11:41:31 2735 1
原创 【神经网络+数学】——(3)神经网络求解一元微分问题(二阶微分)
背景详见上篇博客本博客对更复杂的二阶微分问题进行神经网络求解,问题示例参考博客问题描述定义域选取[0,2]模型代码神经网络模拟φ(x),利用自动微分得到二阶、一阶微分,代入表达式后作为loss进行训练即可。该方法适用于N阶微分问题,具有搭建快捷、模型结构不受阶数影响的优点,而传统的解析方法对阶数很敏感,求解难度随着阶数的增加直线上升。使用tf2+python3.7环境,自动微分的结果表示微分函数值,训练代码如下(不包含net类的定义代码,需要付费获取,请私信联系博主):# 随机打乱
2021-06-25 07:44:44 667
原创 【神经网络+数学】——(2)神经网络求解一元微分问题(一阶微分)
背景神经网络快速发展,且其具有自动微分的天然功能特性,可以用其来近似逼近待求解函数,利用自动微分来逼近一阶微分,利用自动微分的微分来逼近二阶微分,代入原等式中计算loss,优化后即可得到结果。(以下参考博客)微分方程是由函数以及其导数组成的等式,一般而言,可以分为常微分方程(ODE)和偏微分方程(PDE),常微分方程按照最高阶导数的阶数可以分为一阶,二阶甚至更高阶,按照函数及其导数的次数又可分为线性微分方程和非线性微分方程。求解微分方程一般有分离变量法和常数变易法等,但是这些方法可以求解的微分方程非常有限
2021-06-24 11:21:24 1022
原创 【时间序列异常检测算法】——传统异常检测算法介绍及代码实现
背景前面博客讲述了正常值组成的时间序列如何预测t时刻的值,是时序预测任务;这里讲述的是包含有异常值的时间序列如何判定哪个时刻发生了异常,是时序异常检测任务。同比:本期与同期做对比。环比:本期与上期做对比。异常主要包括:数据突变异常:数据在某个时刻或短时间段内,突升/突降。使用环比检测。周期性异常:正常情况下,不同周期间的数据变化趋势是一致的,异常是某周期时间段内趋势和其他周期内趋势不同。使用同比检测。归纳为三个场景:场景一:数据无规律波动,但正常基本在一个较小的波动范围内,典型的场
2021-06-22 17:01:29 3554
原创 【时间序列预测算法】——Holt-Winters算法介绍及代码实现
背景一阶二阶三阶指数平滑方法拟合效果均较好,通过结合数据自然属性,数据自身、趋势变化、季节性,提出了这三个角度的衡量量,可以说,理解起来更自然、更亲切。公式一阶:sts_tst是t时刻对xtx_txt的估计值,这里只有一个参数α,是数据本身的平滑属性的体现。二阶:引入了时间趋势变量btb_tbt,优化了一下一阶的公式。同时还可以预测t+m时刻的值:三阶:又引入了季节性周期描述变量ctc_tct,优化了一下二阶的公式。同时还可以预测t+m时刻的值:NOTE:ct
2021-06-21 23:54:57 10040 2
原创 【时间序列预测算法】——指数平滑算法介绍及代码实现
背景考虑到时间越近的y值对当前要预测的y值的影响更大,采用指数衰减的方式来进行权值赋值。公式递推关系式:α取[0,1]平滑参数,控制权重下降的速度。代码# 参数设定epochs = 20alpha = 0.5#初始化L 初值L会影响最后的结果# TSD数据集构造t = np.linspace(0,10,100)y = 2*t + np.random.rand(len(t))# 原始时序数据plt.figure(figsize=(16, 7))plt.plot(y)plt.t
2021-06-21 10:55:13 1324
原创 【时间序列预测算法】——平均算法介绍及代码实现
背景适用于统计特性不变的场景公式使用从开始到当前t时刻所有y的均值作为下一时刻的预测值。优化:划分为几个不定长度的时间窗口(按照经验划分,目的是窗口内的均值一致,比如烧烤店的数据在夜晚的部分划为一个窗口,人流量均值明显是高于白天的窗口内计算的均值),各自计算均值,看数据落在哪个窗口内,就用哪个窗口的统计均值来预测t+1时刻的值。或者使用固定长度L的时间窗口,计算t-L到t时刻内的均值,作为t+1时刻的预测值,这样也是变相考虑了相关性的大小,距离当前时刻越近的时刻相关性也就越大。代码实现#
2021-06-21 10:02:48 1306
原创 【时间序列预测算法】——朴素算法介绍及代码实现
背景时间序列问题从开始出现到开始研究,学者们对其开始的预测算法研究源于朴素预测算法。公式yt=αyt−1=αty0y_t=\alpha y_{t-1}=\alpha^ty_0yt=αyt−1=αty0 ,其中α是常数,最简单的是=0.推广优化为:yt=αt−1yt−1+αt−2yt−2+...+αt−kyt−ky_t=\alpha_{t-1}y_{t-1}+\alpha_{t-2}y_{t-2}+...+\alpha_{t-k}y_{t-k}yt=αt−1yt−1+αt−2yt
2021-06-21 09:31:45 1246
原创 【时间序列预测算法】——灰色预测算法介绍及代码实现
基本概念白色系统:系统结构和参数完全已知黑色系统:系统结构和参数完全不知,只能观测外界交互灰色系统:系统结构和参数部分已知。适合处理贫信息系统,小样本预测问题。灰色生成:f(原始TSD)->y,如累加生成、累减生成。可以看出灰量递增/递减过程的发展态势,使原始数据中蕴含的积分规律显化。对生成数建立起微分方程形式的模型,便于对其变化过程进行研究和描述。G 表示 Grey(灰色),M 表示 Model(模型),所以GM(m,n)表示灰色模型。a:发展系数;b:灰作用量GM(1,1)或GM11
2021-06-20 23:48:41 3848
原创 【时间序列预测算法】——ARIMA 算法介绍及代码实现
基本概念一阶差分:时间序列在t 与t-1 时刻函数值的差值,提升时序数据的平稳性(ARIMA算法对数据平稳性有要求)二阶差分:在一阶差分的基础上再做一次(一般时序数据最多做两阶,再多则预测意义不大)自回归模型:f(t),t∈[0,m]f(t),t\in[0,m]f(t),t∈[0,m]已知历史数据,预测f(t′),t′>mf(t'),t'>mf(t′),t′>m 。用变量自身的历史数据对自身进行预测 自回归模型必须满足平稳性的要求ARIMA:全称“自回归移动平均模型”。记作ARI
2021-06-20 14:31:35 15041 4
原创 【数据分析】——各种运载火箭主要参数比对
背景空间站逐步建成,航天员入住空间站,这些逐步走进了大众的视野,作为一名数据分析爱好者,也想赶个热潮分析一波运载火箭的主要参数。参数全长 起飞质量 起飞推力,本来还分析运载能力,但数据不全,有的是GTO,有的是GEO,有的是SSO,所以只分析前三项。数据分析代码# 全长 起飞质量 起飞推力cz5 = [60.5,849,10620]cz7 = [53.1,591,7200,]cz5b=[53.66,850,10620]cz4=[41.9,249,2962]cz3=[52.52,243
2021-06-18 02:38:14 2644
原创 【神经网络笔记】——多分类交叉熵损失函数公式及代码实现
背景mse均方误差、mae绝对值平均误差用于拟合回归,公式已经熟悉了,但交叉熵的每次都只是应用,没有了解公式,这对于自己写交叉熵损失函数以及分析损失函数不利。公式详解C是损失值;n是求平均用的,所以是样本数量,也就是batchsize;x是预测向量维度,因为需要在输出的特征向量维度上一个个计算并求和;y是onehot编码后的真实值 对应x维度上的标签,是1或0;a是onehot格式输出的预测标签,是0~1的值,a经过了softmax激活,所以a的和值为1对于某个维度xix_ixi,y=1
2021-06-18 02:06:32 11885 4
原创 【课题研究】MNIST神经网络代码TF2转换为基础代码
研究背景神经网络训练完成后在实际部署时仍需要安装神经网络开发用到的框架库,往往上百MB,非常繁琐,但实际应用中往往只需要前推过程即可,因此本课题研究旨在将框架代码转为无需安装框架库即可运行的基础代码,以python+tensorflow为例。研究问题以MNIST识别为例,研究全连接网络的代码转换问题。模型结构采用全连接网络: inputs = tf.keras.Input(shape=(x_train.shape[1],x_train.shape[2], 1), name='data
2021-06-17 22:59:48 209
原创 涛思数据 TDengine 征稿—TDengine环境搭建CentOS+Windows
本文正在参与 “拥抱开源 | 涛思数据 TDengine有奖征稿https://marketing.csdn.net/p/0ada836ca30caa924b9baae0fd33857c系列背景TDengine作为国产时序数据库的典范,开源了单机版和集群版,实在是国产软件开源的典范,因毕设需要,对其进行深入研究,此系列记录所学。顺便为这款优秀的开源产品做推广~TDengine研发背景就是基于物联网行业的数据特点:1: 数据是时序的,一定带有时间戳;2:数据是结构化的;3:数据极少有更新或删.
2021-06-17 20:46:58 811 4
原创 【神经网络+数学】——(1)神经网络求解一元积分问题
背景神经网络快速发展,对传统的数学问题求解提出了新的思路,积分问题传统方式采用牛顿莱布尼茨公式,存在原函数难以找到的不足,以及现有被积函数的表达式可能无法显式表达,只能通过离散点来表示,而神经网络不依赖表达式,只要有离散的点(被积函数曲线上的点)即可完成积分。但缺点是不如传统得到原函数表达式的情况,神经网络积分不能计算任意定义域内的,必须是训练集给定的范围内的。问题描述2x+exp(x)2x+exp(x)2x+exp(x)给定区间x in (−1,1)x\ in\ (-1,1)x
2021-06-16 22:50:52 1787 2
原创 【看这一篇即可】——C语言函数模块化(多文件函数、变量共享调用)
背景网上多文件的变量共享、函数调用繁杂,一个很清楚的问题整的很乱,特此写博客提供参考(无需extern)。环境win10+CLion习惯用IDEA、Pycharm的你肯定会习惯于CLion这头狮子实验步骤CLion新建工程,选择无中文的路径,否则报错无法编译将待拆分的C文件代码拷贝到main.c(自动生成的文件)首先对main.c进行函数extract(若已提取则跳过)按照函数的功能分类,规划分为几个模块文件多文件调用、共享变量和函数。第5步详解将规划的模块新建一个.c/.h
2021-06-15 11:13:17 1070
原创 【龙芯】——(1)kubernetes编译
系列背景龙芯作为国产CPU架构,遵循mips64le架构协议,但其今年推出的loongarch开启了自研国产架构新篇章,兼容mips指令,同时还自己扩充了一些指令。本系列旨在为该架构的资料空缺作出一定的努力。kubernetes源码准备http://www.loongnix.org/index.php/Kubernetes提到了“ 龙芯平台Kubernetes v1.18.3重磅发布,对应社区github代码库tag是v1.18.3,修复了部分社区已知bug,其中单元测试、集成测试、e2e测试、
2021-06-15 10:01:08 561
原创 通俗易懂的人脸目标检测 Tf2+keras Retinaface
通俗易懂的人脸目标检测 Tf2+keras Retinaface背景结果代码环境背景因网上某些博客的代码无法使用 以及过于冗余,甚至以冗余为自豪,导致代码阅读费劲,耽误浪费时间,特此重写代码并讲述实验过程,代码量精简。结果先看结果:从图中可以看出,loss整体下降,但最后OOM溢出了,还好有Checkpoint保存了一版20epoch的模型权重。。代码环境Tf2.1.0+py3.7+keras2.3.1GeForce RTX 2060 computeCapability: 7.5显存6G
2021-06-15 09:03:44 250 2
原创 【TDengine系列】——(1)环境准备
系列背景TDengine作为国产时序数据库的典范,开源了单机版和集群版,实在是国产软件开源的典范,因毕设需要,对其进行深入研究,此系列记录所学。顺便为这款优秀的开源产品做推广~接口准备配置于宿主机,用于读取TDengine的数据python3.7pip install taos安装库如果下载 taos-1.4.11-py2-none-any.whl离线安装,会报错不匹配平台,是因为这是py2的库。虚拟机准备用于安装TDenginewin10+VMware14 宿主机内存16GB,建议内存
2021-06-14 09:51:05 1366
原创 【自玩】王者荣耀模拟器V1
项目背景单排上王者太难,经常连输4局以上才能赢一局,目前仍和赛季初一样星耀三。感觉匹配机制不好,应改为玩的好的匹配玩的好的,玩的差的匹配玩的差的,其实50%是公平但不是最合理的设置值,玩家可能更希望通过游戏来达到放松的目的而不是生气更多,游戏甚至不应该产生生气的情绪,更别提发火了。模拟器实验# 初始数据# https://pvp.qq.com/web201605/herodetail/166.shtml网站展示只有条形图,没有具体数值# 通过F12获取元素的bar width百分比 换算为具体的数
2021-06-12 16:35:07 787 2
原创 【课题研究】主动信号干扰仿真
问题背景噪声扰民问题、防止设备监听需求、军事信号干扰需求问题描述仿真实验# signal definitiont = np.arange(0,1000,1)phi = np.pi#相位差β=np.pi/3#信号夹角# P到目标的距离distance = 10# 振幅定义A1 = 10A2 = -A1print("Initial Energy:%.4f"%A1)# 电压信号为例signal1 = A1*np.sin(t)#主信号signal2 = A2*np.sin(t+ph
2021-06-12 15:14:47 511
原创 【已解决】IDEA查看源码只能看到接口定义的解决方法
【已解决】IDEA查看源码只能看到接口定义的解决方法Problem DescriptionProblem ReasonProblem SolutionsResultProblem DescriptionCtrl+鼠标点击进入不了源码界面,只能看到def 方法名:返回值=xx:xx的样式,按照网上的解决方法,都指向了同一种解决方法,如下图所示Problem Reason没有Attache...
2019-03-05 19:18:50 2374
原创 【已解决】IDEA编译Spark程序打包时报错Build Failure
Problem Description编写了scala版本的程序,maven打包无误,jar包可正确运行于spark Stand alone mode;接着编写java版本的spark程序,结果package时报错Build Failure,Fatal Error:maven-plugin3.1版本无法编译Problem Reasons1.scala程序和java程序在同一个main文件夹下...
2019-03-04 12:14:21 1288
转载 【已解决】Eclipse 加载JFrame UI界面显示不出
【已解决】Eclipse 加载JFrame UI界面显示不出Problems DescriptionProblems ReasonsProblems ResolutionCodesProblems Description运行Jframe代码后,Run不出图形化界面UI。Problems Reasons没有导包java.awt.*;main方法中没有进行调用JFrame;代码需要创建J...
2019-03-03 18:36:52 4810 1
【自动化脚本】自动启动hdfs/yarn/spark HA集群
2019-03-05
毕业课题大家都是什么 有没有数据库设计的 交流一波
2021-06-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人