DATE: 2019-2-22 前言 在调试不同海思芯片的编码器时,遇到了需要加载和卸载驱动的情况,并且调试过程中出现不同硬件层面和编码的错误,特将问题定位方法记录一下以供后续参考。
1、海思芯片驱动使用方法 设备SDK包中的ko文件夹中存放了海思硬件运行需要的不同模块驱动,设备正常运行需要加载相应的驱动程序才可以。
HISI芯片驱动加载和卸载方法:
以Hi3559AV100为例:
cd ko ./load3559av100 -a -sensor imx334 查看已经安装的驱动模块:
lsmod 注意事项:不同模块驱动之间存在依赖关系,卸载模块驱动时存在先后顺序。
模块KO之间的依赖关系:参考文档:《HiMPP 媒体处理软件 FAQ.pdf》
每个加载上去的KO模块,有显示依赖关系的,lsmod查看时,会有Used by的标识。存在这种关系的KO之间需要按照顺序加载和相反顺序卸载。 有些模块KO是隐形依赖的,比如公共基础KO模块mmz.ko、hi_media.ko等需要先加载,这些KO模块若中途单独卸载再加载可能引起一些异常。 2、调试和问题定位方法 在运行海思编码器demo时,编码报错一般是由于编码API使用不当造成的,比如参数超出合法范围,系统驱动没有加载等。
2.1、MPP API调试工具 问题定位方法:
1、首先根据错误码(如下图6.5所示)大致定位问题的原因和方向。
2、查看mpp log信息:
cat /dev/logmpp 注:mpp log信息中会具体指定错误类型以及错误的原因和位置。
调用HISI SDK API接口出现错误怎么办?
下面参考自:https://blog.csdn.net/listener51/article/details/87891633
【现象】
需要查看日志和调整 log 日志的等级。
【分析】
Log 日志记录 SDK 运行时错误的原因、大致位置以及一些系统运行状态等信息。因此可通过查看 log 日志,辅助错误定位。
目前日志分为 7 个等级,默认设置为等级 3 。等级设置的越高,表示记录到日志中的信息量就越多,当等级为 7 时,系统的整个运行状态实时的被记录到日志中,此时的信息量非常庞大,会大大降低系统的整体性能。因此,通常情况下,推荐设置为等级 3 ,因为此时只有发生错误的情况下,才会将信息记录到日志中,辅助定位绝大多数的错误。
【解决】
获取日志记录或修改日志等级时用到的命令如下:
查看各模块的日志等级,可以使用命令 cat /proc/umap/logmpp ,此命令会列出所有模块日志等级。 修改某个模块的日志等级,可使用命令 echo “venc=4” > /proc/umap/logmpp ,其中 venc 是模块名,与 cat 命令列出的模块名一致即可。
本人经过一整天的折腾QAQ
就为了Ubuntu的两个最重要的驱动安装(无线网卡驱动+独立显卡驱动)
搞得心态都炸了好几次 神烦!!((╯‵□′)╯︵┻━┻)
所以特地写一篇博文 把我期间遇到的一些问题进行总结 希望能让遇到同样问题的朋友少走一些弯路。
【最重要的一点!!!所以写在最开头!!!】
【一定要先进入BIOS,把secure root关闭!!!】
中文是 安全启动模式 记得一定要先关闭!!!
1.Ubuntu安装卡死问题
在进入引导U盘以后,开始安装以前,有个选项是 *install Ubuntu,这里先不要进入,按“e”进入编辑,找到以linux开头的那行,将“quite splash – – -”改为“quite splash nomodeset”,然后按F10引导进入安装,就不会卡了。
2.登录卡死问题
双系统我安装完以后,是Ubuntu引导win10,在选择系统的界面,同理,Ubuntu,按“e”进去编辑,修改内容同上条。
3.无线网卡驱动
我的笔记本是暗影精灵3,我安装了Ubuntu以后,通过命令查看电脑的网卡设备,发现并不是百度说的那样,有eth0,wlan0这样的命名。比如如果命名是eth0,eth1,则eth0表示有线网卡,eth1表示无线网卡。【未完待续(等我整理完,再更新一些内容)】
查询命令参考:iwconfig,ifconfig
我的无线网卡型号是b822,这个型号的驱动文件Ubuntu已经有了,我关掉BIOS安全启动(secure boot),reboot以后WiFi就能用了。【未完待续(补查询型号的操作过程)】
4.NVIDIA显卡驱动
这个我遇到的最大的问题就是NVIDIA显卡驱动安装好以后和Ubuntu默认的nouveau驱动会冲突,导致重启的时候出现下图的问题,无法进入系统。【未完待续(补寻找显卡驱动版本以及安装过程)】
这里我也手打一下这个问题描述,便于遇到同样问题的朋友搜索。(我当时真的搜不到啊QAQ)
acpi INT3400:00: Unsupported event [0x86]
acpi INT3400:00: Unsupported event [0x86]
acpi INT3400:00: Unsupported event [0x86]
acpi INT3400:00: Unsupported event [0x86]
acpi INT3400:00: Unsupported event [0x86]
解决方法:强制关机,在启动之前,选择系统的时候,找到“ Ubuntu ”,按“ e ”进入编辑,将“ quiet splash nomodeset ”修改成“ quiet splash acpi=off ”,按F10引导启动。
文章目录 完成标志 过程 0.查看自己的显卡型号, 1.查询适合的版本, https://www.nvidia.com/Download/index.aspx?lang=en-us, 2.禁用原先的显卡 3.重启。reboot 4.lsmod | grep nouveau 没有输出,即说明拉黑成功 5.通过PPA安装(本人只有通过这种方式才能成功,从官方下载后运行安装脚本,Ubuntu additional drivers统统无效) 6.重启。 一些可能的错误 参考 完成标志 system settings>>details,观察到图形显卡驱动切换为GeForce
终端输入
nvidia-settings,
出现上图,左侧显示关于显卡的一些选项。
终端输入nvidia-smi,出现上如所示信息。
屏幕显示正常,则说明安装正确。
过程 0.查看自己的显卡型号, lspci | grep -i NVIDIA
或者在windows下,查看计算机属性,或者使用其他工具查询自己的显卡型号。
卸载原先安装不成功的nvidia驱动
sudo apt-get remove --purge nvidia* 只要是不满足完成标志已经工作异常的,建议都卸载掉。
1.查询适合的版本, https://www.nvidia.com/Download/index.aspx?lang=en-us, 查询的结果显示适用版本为410。
不!要!点!下载安装。
2.禁用原先的显卡 sudo gedit /etc/modprobe.d/blacklist.conf 在balcklist.conf的末尾添加
blacklist vga16fb blacklist nouveau blacklist rivafb blacklist rivatv blacklist nvidiafb 禁用这些。
sudo update-initramfs -u 更新update-initramfs。
3.重启。reboot 4.lsmod | grep nouveau 没有输出,即说明拉黑成功 5.
网上下载 tor
翻过城墙。
点击使用
github上有网址
自己看
输进去流览。
意大利学者开发了一种可以检测Tor流量中Android应用活动的模式的算法,其准确率为97%。
该算法不是去匿名化脚本,因为它无法显示用户的真实IP地址或其他识别细节。但是,它将揭示Tor用户是否正在使用Android应用程序。
意大利罗马萨皮恩扎大学(Sapienza University of Rome)的研究人员的研究工作建立在之前的研究基础之上,该研究能够分析Tor流量的TCP数据包流,并区分八种流量类型:浏览、电子邮件、聊天、音频流、视频流、文件传输、VoIP和P2P。
在研究工作中,意大利研究人员应用了类似的概念,分析流经Tor连接的TCP数据包,以检测特定于某些Android应用程序的模式。然后,他们开发了一种机器学习算法,用Tor浏览器的10个应用程序的流量模式进行训练:Android应用程序、Instagram、Facebook、Skype、uTorrent、Spotify、Twitch、YouTube、DailyMotion和Replaio Radio。
通过对算法的不断完善,他们可以将其指向Tor流量,并在用户使用上述程序时进行检测,测试结果显示,算法准确率为97.3%。
然而,他们设计的机制并不像听起来那么完美和有效。首先,它只能在通信通道没有背景交通噪声的情况下使用,这意味着它只能在用户使用一个应用程序的移动设备时使用,而不能在其他情况下使用。如果在手机背景中有太多应用程序同时进行通信,则TCP流量模式会变得混乱,算法的效率就会下降。
其次,某些结果的准确性仍然存在问题。例如,Spotify或YouTube等基于流媒体的应用会产生类似的流量模式,从而导致误报。算法在Facebook,Instagram和Tor浏览器应用程序等应用程序的长时间“闲置”后,难以有效检测到用户对相关应用的访问。
由于未来的实验将会考虑加入对更多应用程序的检测,类似的问题还会出现,从而增加误报概率,降低整体的准确度。上个月,他们发表了一篇名为《Peel the onion: Recognition of Android apps behind the Tor Network》的研究论文,此外,研究者还计划公布算法的代码。
转载于:https://blog.51cto.com/13520190/2352201
点赞 收藏 分享 文章举报 weixin_33737774 发布了150 篇原创文章 ·
获赞 51 ·
访问量 26万+ 私信 关注
以下是对PHP生成验证码时“图像因其本身有错无法显示”的解决方法进行了详细的分析介绍,需要的朋友可以过来参考下
今天使用代码进行PHP生成校验码功能的实现,发现firefox一直提示“图像…….因其本身有错无法显示”的问题,作者也提示了说“如果浏览器显示“图像XXX因其本身有错无法显示”,可尽量去掉文中空格”,但把代码中所有空格都去掉了还是不能显示检验图片。
于是深度google,大部分的解决方案也是将“
今天我们谈谈高频交易中比较成熟的一些交易策略,应用于数字货币市场。
引言:
高频交易是自动化交易的一种形式,以速度见长,利用计算机系统加入人工智能算法,以智能化方式,快速,稳健的短线持仓执行交易。其中,国际金融领域比较流行的交易策略有:
1、市场微观结构交易策略;
2、统计套利策略;
3、事件交易策略;
4、流动性交易策略。
高频交易是量化投资领域,金融市场一颗璀璨的明星,是金融科技发展到一定程度的产物。更是国际金融炒家常用的金融工具。欧洲证券监管委员会给出这样的定义:高频交易是自动化交易的一种形式,以速度见长,它利用复杂的计算机技术和系统,以毫秒级的速度执行交易,并且日内短暂持仓。现在再加入人工智能方式,来创建合理的高频交易模型。
高频交易都有哪些关键特征:
1、处理分笔交易数据和算法交易
处理分笔交易数据和算法交易是高频交易的重要流程,高频交易通过对市场分笔交易数据进行采集、处理,分析市场在微观上潜在的交易机会,一旦确认交易机会,通过算法交易及时下单进场,获利后快速平仓离场的一种交易策略。
2、高资金周转率和日内交易
高资金周转率和日内交易也是高频交易的特点,交易过程中,资金快速进场出场,一秒钟内可以发生多次下单、撤单的动作。资金在整个交易过程中高速流转,提高了市场流动性。同时,日内交易也回避了隔夜风险。
国际金融市场有以下几种比较成熟的交易策略:
1、市场微观结构交易策略
市场微观结构交易策略主要是通过分析市场中即时的盘口数据,在短时间内,对选定的交易对,根据交易对买卖订单流不平衡原理进行短暂交易的策略。比如EOS当天涨幅12%,ETH涨幅3%,这样的策略在短时间就产生较大的套利空间。市场中即时的买卖订单流中潜藏着很多交易机会,通过系统统计可见的交易订单及其他参数变化,分析未来极短时间内是卖单流主导还是买单流主导。在卖单流主导的市场中,价格将下跌;在买单流主导的市场中,价格将上涨。根据市场变化进行操作。
利用市场微观结构交易策略,系统通过对比分析交易订单中买卖单量,抢先交易,并快速平仓。前提条件是需要获取真实的交易订单数据,防止干扰数据。因此这种交易策略还需要配合其他交易策略,交易参数一起分析,做出正确的分析判断。
这种交易策略应用比较广泛应用在期货交易市场,通过观察盘口信息,寻找机会,快速下单,快速平仓,高频交易,获利不小。
这种交易方式以速度见长,人工操作几乎很少,都是通过系统分析,快速操作完成。
2、统计套利策略
统计套利策略是寻找具有长期统计关系的交易对,根据长期的数据统计结果,在交易对价差发生偏差时进行套利的一种交易策略。这种交易策略也非常适合于数字货币交易市场。
3、事件交易策略
事件交易策略是指利用市场对事件的反应进行交易的策略。事件可以是影响广泛的经济事件,也可以是行业相关事件。每个事件对市场产生影响的时间差异很大,高频事件交易策略就是利用事件在极短时间内的影响自动进行交易,赚取利润。
该策略中有两个环节比较关键。
1)确定什么时间可以产生影响的事件。这就需要信息搜集部门配合,挖掘最近事件,及事件对市场的影响。快速反应。快速交易。
2)确定事件的影响时间和方向。这需要不断地对历史数据进行统计挖掘。
4、流动性交易策略
流动性交易策略是为市场提供流动性来获取利润的交易策略。做市商们为市场提供不同价位层次的订单,为头寸接受者提供流动性,因此被称为流动性交易策略。做市商为市场的流动性做出了贡献,很多非活跃市场由于做市商的存在,流动性显著提高,交易成本大为降低。
做市商策略的理论基础是存货模型与信息模型
1)买卖价差实际上是有组织的市场为交易的即时性提供的补偿。
2)买卖价差是由于市场信息不对称性造成的。
做市商们通过对订单统计分析、对波动性等市场微结构进行研究,提高了市场流动性,同时也从市场中获利。
总结:
不是一种交易策略都是万能的,往往在实际操作过程中,几种策略同时运用,取长补短,综合分析,在合适的时间点,选取合适的策略组合进行操作。这就需要计算机系统与人工智能综合运用起来。对统计数据不断分析,根据模型预警为操作者建议合适的交易策略。操作者再根据自己的经验,参考模型分析,理性的做出合理的判断。
2019年12月19日整理于深圳
赛门铁克(Symantec)在今年1月于微软官方程式市集Microsoft Store中发现了8款程序,这些看似正常的合法程序却藏有挖矿机制,可利用用户的计算机资源来开采门罗币(Monero)。这些程序涵盖了网络搜寻程序Fast-search Lite、电池优化程序Battery Optimizer、VPN浏览程序VPN Browser+、视频影片下载程序Downloader for 视频 Videos、工具程序Clean Master+、在线影片观赏程序FastTube、轻量浏览器Findoo Browser 2019,及桌面搜寻工具Findoo Mobile & Desktop Search。
赛门铁克指出,虽然名义上这8款程序是由3名不同的开发人员所提交,但进一步调查后发现代管这些程序的服务器都是由同一个人或集团所申请,显示系出同源。这些程序可在Windows 10上执行,安装后它们会自网域服务器中的网络大厂Tag Manager汲取挖矿的JavaScript函式库,这些挖矿脚本程序便会利用计算机上的CPU资源来开采门罗币,且在程序的描述中完全未提及挖矿功能。当中较有趣的部份是黑客利用了网络大厂Tag Manager。网络大厂Tag Manager是网络大厂所建立的卷标管理系统,主要协助开发人员于程序中注入可用来追踪或分析的JavaScript及HTML内容,却遭到黑客的滥用。上述程序都是在去年的4月到12月间上架的,赛门铁克无从得知它们的安装数量,仅知总计有1,900则评论。网络大厂及微软在收到赛门铁克的通知之后,已分别自网络大厂Tag Manager及Microsoft Store移除了相关的JavaScript与程序。
残差网络学习心得 残差网络介绍 为什么残差网络有如此好的表现? 残差网络介绍 ResNets是由残差块构建的,首先先解释一下什么是残差块。
这是一个两层神经网络在L层进行激活。计算过程是从a[l]开始,首先进行线性激活 。
根据这个等式,通过a[l]算出z[l+1]即a[l]乘以权重矩阵再加上偏差因子,然后通过非线性Relu激活得到a[l+1]。
随后我们再进行线性激活,从下面等式可以得出z[l+2]。
最后根据这个等式再进行Relu非线性激活
这里的g指的是Relu非线性函数
换句话说,信息流从a[l]到a[l+2],需要经历上述所有步骤即这组网络层的主路径。在残差网络中有一点变化:我们将a[l]直接向后拷贝到神经网络的深层,在Relu非线性激活前加上a[l],这是一条捷径将a[l]的信息直接传达到神经网络的深层(不再沿着主路经传递)
这就意味着最后这个等式去掉了
取而代之的是另一个Relu非线性函数,仍然对z[l+2]进行g函数处理,但这次要加上a[l],也就是加上的这个a[l]产生了一个残差块。
我们也可以画一条捷径直达第二层,实际上这条捷径是在进行Relu非线性激活之前加上的。而这里的每一个节点都执行了线性函数和Relu激活函数,所以a[l]插入的时机是在线性激活之后Relu激活之前
除了捷径,你还听到另一个术语“跳远连接”,就是指a[l]跳过一层或者好几层,从而将信息传递到神经网络的更深层。
使用残差块能够训练更深的神经网络,构建一个Resnet网络就是通过将很多这样的残差块堆积在一起,形成一个深度神经网络。
我们来看看这样一个网络,这并不是一个残差网络,而是一个普通网络,把它变成ResNet的方法就是加上所有的跳远连接。
正如前面所看到的每两层增加一个捷径,构成一个残差块,所以这个图就有5个残差块,构成一个残差网络。
如果我们使用标准优化算法训练一个普通网络,比如梯度下降或者其他优化算法,如果没有残差,没有这些捷径。凭经验,你会发现随着网络深度的加深,训练错误会先减少然后增多。
而理论上随着网络深度的加深,应该训练得越来越好才对。也就是说,理论上网络深度越深越好,但实际上,如果没有残差网络,对于一个普通网络来说,深度越深意味着用优化算法越难训练。
但有了ResNets就不一样了,即使网络再深,训练的表现却不错,错误会减少。
为什么残差网络有如此好的表现? 先来看一个例子,上面我们说到一个网络深度越深,它在训练集上训练网络的效率会有所减弱,这也是有时我们不愿加深层数的原因。但在训练ResNets网络时并不完全如此。
假设有一个大型神经网络,其输入为x,输出激活值为a[l],如果你想增加这个神经网络的深度,就再给这个网络额外添加两层,最后输出为a[l+2],可以把这两层看作ResNet块,即具有近路连接的残差块。假设我们在整个网络中使用Relu激活函数,所以激活值都大于等于0。a[l+2]=g(z[l+2]+a[l]),添加项a[l]是刚添加的跳远连接的输入。
如果z[l+2]=0,那么a[l+2]=a[l]。因为我们假定使用Relu激活函数,并且所有激活值都是负的。结果表明,残差块学习这个恒等式函数残差块并不难。加入残差块后,我们可以得出a[l+2]=a[l],这说明即使增加两层它的效率也不逊色与简单的神经网络。所以给大型神经网络增加两层,不论是把残差块添加到神经网络的中间还是末端位置都不会影响网络的实现。当然我们不仅要保持效率还要提升。想象一下,如果这些隐层单元学到一些有用信息,那么它可能比学习恒等函数变现的更好。而哪些不含有残差的普通网络情况就不一样了,当层数越来越深时,就算选择学习恒等函数的参数都很困难。所以很多层最后的表现不但没有更好反而更糟。残差网络起作用的主要原因就是这些残差块学习恒等函数非常容易。你能确定网络性能不会受到影响,很多时候甚至会提高效率。另一点值得去说的是,假设z[l+2]与a[l]具有相同维度,所以Resnet使用了许多相同卷积,这个a[l]的维度等于这个输出层的维度。
我们只需要在普通网络中加入如图残差块就能变为残差网络。
1.SingleFile 将一个网页转换为一个单独的html文件,包括图片,很方便保存!
2.Dark read 浏览器护眼插件
2019.2.16日更新