深度系统如何设置开机自启动脚本
❶ miui6 怎么修改cpu内核脚本文件
ROM介绍
本ROM为米基塔系列2015年的MIUI6版本,基于官网的M3-MIUI6_5.2.6特别版深度定制,希望大家喜欢!感谢支持!!
后面的截图效果请大家欣赏!那是刷完之后直接就有的效果,不需要用户再去复杂的配置桌面!
M3部分扩展功能为米基塔团队开发制作,所以移植请注明,否则不要随便拿去自己发布!
ROM特性
系统:
修改内核支持双系统共存,通过内置的米基塔双系统切换软件可在V5和MIUI6之间免三清切换;
开启官方内核init.d参数支持,可将自定义脚本放入system/etc/init.d文件夹中;
调整内核参数,修正MIUI6电量显示不准确的问题;
加入CWM/TDB支持,修正官方ROM无法通过小米助手连接手机的问题;
加入Sysctl和Fstrim脚本控制(提升系统运存效果明显);
破解删除预装软件后重启强制恢复的官方限制;
开启MIUI6隐藏的ART模式,体验丝般顺滑;
新增应用操作权限自定义功能,即对每一个应用的操作权限,例如是否允许获取地理位置、发送短信、读取联系人、是否允许保持唤醒等权限进行自定义开关,最大限度掌控自己隐私(设置--安全和隐私--应用操作);
微调运存机制,开启MIUI6大运存时代;
破解官方原版授权管理,系统检测到应用需要ROOT权限的时候会自动弹出授权窗口,体验MIUI6的极速授权;
加入全局杜比音效,进程不会再被一键清理查杀掉;
修改相机参数,提高成像质量;
新增支持OTA至官方开发版功能;
加入Xposed框架支持,功能媲美WSM神器;
系统设置植入米基塔经典应用扩展(含Xposd框架、绿色守护和双V4音效,解决MIUI6声音过小问题),此应用为左中右三选项卡模式,左右滑动即可切换,中间选项卡提供了部分应用的常用操作方法说明,供部分未接触过此类应用的机油查阅,第三选项卡为米基塔ROM相关说明,内有米基塔官方交流群号,刷入后即可查看,欢迎加入。
重新编译系统设置apk文件,新增“系统测试”功能选项,置于米基塔设置顶部,方便查看测试系统硬件信息;
剔除部分无用组件,并将部分不常用组件移至data下,方面用户直接删除;
更新卡刷包内置秋大最新中文版第三方recovery版本为CWM 6.0.5.0,支持安卓4.4和Android L,卡刷ROM的过程即是刷入第三方recovery的过程;
显示:
修改状态栏布局,时间居中、信号、WIFI和网速居左,同时确保时间居中后不会挤占运营商和网速的显示位置,将电池数字和图标互换位置,最大限度地利用状态栏空间;
新增点击桌面天气时钟右侧天气模块直接进入MIUI天气APP功能,方便随时进入天气应用查看天气详情;
新增下拉栏时间呼吸灯显示效果,微调天气模块显示元素,上移当前实时温度大字体显示,新增空气污染指数显示;
新增下拉通知栏彩色动态天气显示(城市、天气描述、实时气温、气温区间、风速);
修改下拉音乐模块为新界面,默认显示天气元素,点击右侧圆形音乐图标可进入音乐模式,在官方风格基础上新增专辑图显示和上一曲功能按钮;
在官方桌面时钟基础上添加农历显示和动态天气显示,满足部分喜欢官方呼吸时钟的机油(感谢交流群热心机油果维c童鞋分享);注:由于更换了桌面时钟,免三清刷入将不能显示新版时钟,需要三清后刷入方能显示出全部系统特性!
加入沉浸式状态栏,完美支持第三方应用;
新增MIUI6呼吸灯闪烁频率自定义功能;(设置--其他高级设置--呼吸灯)
新增MIUI6多点触控功能(设置--其他高级设置--按键--多点触控);
新增MIUI6的3D显示模式(设置--其他高级设置--显示--3D显示),更好支持3D游戏效果;
开启ART模式,体验丝般顺滑,开启方法——开发者选项--选择运行环境--使用ART。
需要注意的几点问题:
A、ART模式开启过程相对较慢,开机会有Coding的界面提示,请耐心等候!
B、安装了xposed或者WSM框架的二进制文件之后,开启ART模式将会失败!
C、ART模式下由于兼容性问题,对部分应用如xp或WSM框架可能不支持,非ROM的bug,此功能仅供尝鲜,追求稳定的请使用默认的Dalvik模式);
更新日志
米基塔M3-MIUI6_5.2.6开发版更新日志亮点推荐:
更新内核文件,加入CPU频率异步调整技术,显着改善MIUI6功耗;
修复开启ART模式后重启系统时重复读取进度条问题(仅首次开启会读取一次)
新增米基塔运行模式选项;
新增屏幕效果和护眼模式(其他高级设置--屏幕效果、护眼模式);
新增呼吸灯闪烁频率(设置--其他高级设置--呼吸灯--闪烁频率);
新增默认USB连接类型(设置--其他高级设置--默认USB连接类型);
更换默认桌面和锁屏壁纸为小米NOTE默认壁纸;
调整桌面图标布局,对系统图标和第三方应用图标位置进行规整,增加美观度(三清后刷机或者在设置--其他应用管理--全部--系统桌面里清除数据一次方可见效);
修复更换主题后关屏再开屏出现的死机黑屏问题;
修复清理内存界面点击其他空白处无法退出清理界面的问题;
合并基于安卓5.0的MIUI6部分内核代码;
新增米基塔JAR优化代码,自动整合绝大部分主流安卓机型优化脚本,已合并至系统源码中,以防止未经许可的盗取编译;
修正内核文件部分代码,改善触屏失灵问题(已测试通过);
默认系统过渡动画效果为安卓5.0风格;
更新GPS驱动和配置文件,搜星定位更加精确迅速;
修改系统应用授权去除二进制更新提示,刷机完毕可直接对相关应用进行自动弹窗式授权
(一定要注意:由于新版本超级授权软件的原因,授权可能存在一定的延时情况,并非无法授权,请稍微耐心等待即可有弹窗提示授权,尤其是在安装xposed框架和V4A音效驱动的时候,一定要确保有超级授权的ROOT授权弹窗提示授权成功才算安装成功,否则不要贸贸然重启系统,很可能由于授权失败导致驱动安装失败,最终导致重启卡米!!)
注意事项
刷机前请务必三清系统!首次开机会稍慢一些,系统在后台Zipalign程序,请耐心等待!
首次开机官方默认隐藏运营商名称,开启方法为设置--通知栏设置--高级--显示运营商名称功能开启即可!
部分机油反映的通知栏经常出现天气提醒,是因为官方默认为开启提醒状态,关闭方法为进入天气应用,点击”三杠“菜单键,选择“提醒“,将开启位置提醒中不想现实提示的城市关闭即可!”
内置超级权限应用非推广软件,切勿删除,否则系统将无法授权!!!
新版系统调整了设置菜单,将电量、按键、开发者选项、备份重置都调整了设置--其他高级设置中,望周知!!
关于刷机之后出现WIFI无法打开的问题,基本可以判断是刷机之前未三清,上一版本残留数据导致,三清系统后重刷即可解决问题!!
❷ 如何在后台部署深度学习模型
搭建深度学习后台服务器
我们的Keras深度学习REST API将能够批量处理图像,扩展到多台机器(包括多台web服务器和Redis实例),并在负载均衡器之后进行循环调度。
为此,我们将使用:
KerasRedis(内存数据结构存储)
Flask (python的微web框架)
消息队列和消息代理编程范例
- redis-server
- python run_keras_server.py
- curl -X POST -F [email protected] 'http://localhost:5000/predict'
- {"predictions": [{"label": "beagle","probability": 0.9461546540260315},{"label": "bluetick","probability": 0.031958919018507004},{"label": "redbone","probability": 0.006617196369916201},{"label": "Walker_hound","probability": 0.0033879687543958426},{"label": "Greater_Swiss_Mountain_dog","probability": 0.0025766862090677023}],"success": true}
- # import the necessary packagesimport requests# initialize the Keras REST API endpoint URL along with the input# image pathKERAS_REST_API_URL = "http://localhost:5000/predict"IMAGE_PATH = "jemma.png"
- # load the input image and construct the payload for the requestimage = open(IMAGE_PATH, "rb").read()payload = {"image": image}# submit the requestr = requests.post(KERAS_REST_API_URL, files=payload).json()# ensure the request was sucessfulif r["success"]: # loop over the predictions and display them for (i, result) in enumerate(r["predictions"]): print("{}. {}: {:.4f}".format(i + 1, result["label"], result["probability"]))# otherwise, the request failedelse: print("Request failed")
- python simple_request.py
本篇文章的整体思路如下:
我们将首先简要讨论Redis数据存储,以及如何使用它促进消息队列和消息代理。然后,我们将通过安装所需的Python包来配置Python开发环境,以构建我们的Keras深度学习REST API。一旦配置了开发环境,就可以使用Flask web框架实现实际的Keras深度学习REST API。在实现之后,我们将启动Redis和Flask服务器,然后使用cURL和Python向我们的深度学习API端点提交推理请求。最后,我们将以对构建自己的深度学习REST API时应该牢记的注意事项的简短讨论结束。
第一部分:简要介绍Redis如何作为REST API消息代理/消息队列

测试和原文的命令一致。
第三部分:配置Python开发环境以构建Keras REST API
文章中说需要创建新的虚拟环境来防止影响系统级别的python项目(但是我没有创建),但是还是需要安装rest api所需要依赖的包。以下为所需要的包。
第四部分:实现可扩展的Keras REST API
首先是Keras Redis Flask REST API数据流程图
让我们开始构建我们的服务器脚本。为了方便起见,我在一个文件中实现了服务器,但是它可以按照您认为合适的方式模块化。为了获得最好的结果和避免复制/粘贴错误,我建议您使用本文的“下载”部分来获取相关的脚本和图像。
为了简单起见,我们将在ImageNet数据集上使用ResNet预训练。我将指出在哪里可以用你自己的模型交换ResNet。flask模块包含flask库(用于构建web API)。redis模块将使我们能够与redis数据存储接口。从这里开始,让我们初始化将在run_keras_server.py中使用的常量.
我们将向服务器传递float32图像,尺寸为224 x 224,包含3个通道。我们的服务器可以处理一个BATCH_SIZE = 32。如果您的生产系统上有GPU(s),那么您需要调优BATCH_SIZE以获得最佳性能。我发现将SERVER_SLEEP和CLIENT_SLEEP设置为0.25秒(服务器和客户端在再次轮询Redis之前分别暂停的时间)在大多数系统上都可以很好地工作。如果您正在构建一个生产系统,那么一定要调整这些常量。
让我们启动我们的Flask app和Redis服务器:
在这里你可以看到启动Flask是多么容易。在运行这个服务器脚本之前,我假设Redis服务器正在运行(之前的redis-server)。我们的Python脚本连接到本地主机6379端口(Redis的默认主机和端口值)上的Redis存储。不要忘记将全局Keras模型初始化为None。接下来我们来处理图像的序列化:
Redis将充当服务器上的临时数据存储。图像将通过诸如cURL、Python脚本甚至是移动应用程序等各种方法进入服务器,而且,图像只能每隔一段时间(几个小时或几天)或者以很高的速率(每秒几次)进入服务器。我们需要把图像放在某个地方,因为它们在被处理前排队。我们的Redis存储将作为临时存储。
为了将图像存储在Redis中,需要对它们进行序列化。由于图像只是数字数组,我们可以使用base64编码来序列化图像。使用base64编码还有一个额外的好处,即允许我们使用JSON存储图像的附加属性。
base64_encode_image函数处理序列化。类似地,在通过模型传递图像之前,我们需要反序列化图像。这由base64_decode_image函数处理。
预处理图片
我已经定义了一个prepare_image函数,它使用Keras中的ResNet50实现对输入图像进行预处理,以便进行分类。在使用您自己的模型时,我建议修改此函数,以执行所需的预处理、缩放或规范化。
从那里我们将定义我们的分类方法
classify_process函数将在它自己的线程中启动,我们将在下面的__main__中看到这一点。该函数将从Redis服务器轮询图像批次,对图像进行分类,并将结果返回给客户端。
在model = ResNet50(weights="imagenet")这一行中,我将这个操作与终端打印消息连接起来——根据Keras模型的大小,加载是即时的,或者需要几秒钟。
加载模型只在启动这个线程时发生一次——如果每次我们想要处理一个映像时都必须加载模型,那么速度会非常慢,而且由于内存耗尽可能导致服务器崩溃。
加载模型后,这个线程将不断轮询新的图像,然后将它们分类(注意这部分代码应该时尚一部分的继续)
在这里,我们首先使用Redis数据库的lrange函数从队列(第79行)中获取最多的BATCH_SIZE图像。
从那里我们初始化imageIDs和批处理(第80和81行),并开始在第84行开始循环队列。
在循环中,我们首先解码对象并将其反序列化为一个NumPy数组image(第86-88行)。
接下来,在第90-96行中,我们将向批处理添加图像(或者如果批处理当前为None,我们将该批处理设置为当前图像)。
我们还将图像的id附加到imageIDs(第99行)。
让我们完成循环和函数
在这个代码块中,我们检查批处理中是否有图像(第102行)。如果我们有一批图像,我们通过模型(第105行)对整个批进行预测。从那里,我们循环一个图像和相应的预测结果(110-122行)。这些行向输出列表追加标签和概率,然后使用imageID将输出存储在Redis数据库中(第116-122行)。
我们使用第125行上的ltrim从队列中删除了刚刚分类的图像集。最后,我们将睡眠设置为SERVER_SLEEP时间并等待下一批图像进行分类。下面我们来处理/predict我们的REST API端点
稍后您将看到,当我们发布到REST API时,我们将使用/predict端点。当然,我们的服务器可能有多个端点。我们使用@app。路由修饰符以第130行所示的格式在函数上方定义端点,以便Flask知道调用什么函数。我们可以很容易地得到另一个使用AlexNet而不是ResNet的端点,我们可以用类似的方式定义具有关联函数的端点。你懂的,但就我们今天的目的而言,我们只有一个端点叫做/predict。
我们在第131行定义的predict方法将处理对服务器的POST请求。这个函数的目标是构建JSON数据,并将其发送回客户机。如果POST数据包含图像(第137和138行),我们将图像转换为PIL/Pillow格式,并对其进行预处理(第141-143行)。
在开发这个脚本时,我花了大量时间调试我的序列化和反序列化函数,结果发现我需要第147行将数组转换为C-contiguous排序(您可以在这里了解更多)。老实说,这是一个相当大的麻烦事,但我希望它能帮助你站起来,快速跑。
如果您想知道在第99行中提到的id,那么实际上是使用uuid(通用唯一标识符)在第151行生成的。我们使用UUID来防止hash/key冲突。
接下来,我们将图像的id和base64编码附加到d字典中。使用rpush(第153行)将这个JSON数据推送到Redis db非常简单。
让我们轮询服务器以返回预测
我们将持续循环,直到模型服务器返回输出预测。我们开始一个无限循环,试图得到157-159条预测线。从这里,如果输出包含预测,我们将对结果进行反序列化,并将结果添加到将返回给客户机的数据中。我们还从db中删除了结果(因为我们已经从数据库中提取了结果,不再需要将它们存储在数据库中),并跳出了循环(第163-172行)。
否则,我们没有任何预测,我们需要睡觉,继续投票(第176行)。如果我们到达第179行,我们已经成功地得到了我们的预测。在本例中,我们向客户机数据添加True的成功值(第179行)。注意:对于这个示例脚本,我没有在上面的循环中添加超时逻辑,这在理想情况下会为数据添加一个False的成功值。我将由您来处理和实现。最后我们称烧瓶。jsonify对数据,并将其返回给客户端(第182行)。这就完成了我们的预测函数。
为了演示我们的Keras REST API,我们需要一个__main__函数来实际启动服务器
第186-196行定义了__main__函数,它将启动classify_process线程(第190-192行)并运行Flask应用程序(第196行)。
第五部分:启动可伸缩的Keras REST API
要测试我们的Keras深度学习REST API,请确保使用本文的“下载”部分下载源代码示例图像。从这里,让我们启动Redis服务器,如果它还没有运行:
然后,在另一个终端中,让我们启动REST API Flask服务器:
另外,我建议在向服务器提交请求之前,等待您的模型完全加载到内存中。现在我们可以继续使用cURL和Python测试服务器。
第七部分:使用cURL访问Keras REST API
使用cURL来测试我们的Keras REST API服务器。这是我的家庭小猎犬Jemma。根据我们的ResNet模型,她被归类为一只拥有94.6%自信的小猎犬。
你会在你的终端收到JSON格式的预测:
第六部分:使用Python向Keras REST API提交请求
如您所见,使用cURL验证非常简单。现在,让我们构建一个Python脚本,该脚本将发布图像并以编程方式解析返回的JSON。
让我们回顾一下simple_request.py
我们在这个脚本中使用Python请求来处理向服务器提交数据。我们的服务器运行在本地主机上,可以通过端口5000访问端点/predict,这是KERAS_REST_API_URL变量(第6行)指定的。
我们还定义了IMAGE_PATH(第7行)。png与我们的脚本在同一个目录中。如果您想测试其他图像,请确保指定到您的输入图像的完整路径。
让我们加载图像并发送到服务器:
我们在第10行以二进制模式读取图像并将其放入有效负载字典。负载通过请求发送到服务器。在第14行发布。如果我们得到一个成功消息,我们可以循环预测并将它们打印到终端。我使这个脚本很简单,但是如果你想变得更有趣,你也可以使用OpenCV在图像上绘制最高的预测文本。
第七部分:运行简单的请求脚本
编写脚本很容易。打开终端并执行以下命令(当然,前提是我们的Flask服务器和Redis服务器都在运行)。
使用Python以编程方式使用我们的Keras深度学习REST API的结果
第八部分:扩展深度学习REST API时的注意事项
如果您预期在深度学习REST API上有较长一段时间的高负载,那么您可能需要考虑一种负载平衡算法,例如循环调度,以帮助在多个GPU机器和Redis服务器之间平均分配请求。
记住,Redis是内存中的数据存储,所以我们只能在队列中存储可用内存中的尽可能多的图像。
使用float32数据类型的单个224 x 224 x 3图像将消耗602112字节的内存。
❸ 电脑开机出现unable to open the script file如何解决
电脑开机出现unable to open the script file是设置错误造成的,解决方法为:
1、首先需要确定tomcat环境变量已经配置好了,然后按win+R键打开运行,输入“cmd”。

