点击注册
点击注册
.

真人棋牌游戏 用微信控制深度学习训练中国特色的keras插件

发布日期:2022-03-26 09:03    点击次数:82
(微信硬广)现如今,微信已经成为每个中国人接入社会的重要接口,我们用微信在地铁上看鸡汤、在商场使用电子支付、瘫在沙发上刷朋友圈、谈恋(划掉)。总之,微信几乎包办了我们生活中的一切,让人产生一种错觉,在不久的未来手机上只需要装微信一个软件就够了。为了证明人类社会的下一阶段是微信主义,我们先定一个小目标:用微信控制深度学习训练。一般来说,想要监控深度学习训练,只能用ssh或者tensorboard,用手机操作毕竟很麻烦,如果微信能把监控深度学习也包办了岂不是妙哉?在命令行时代,使用图形界面就是逼格;在图形界面时代,使用命令行就是逼格。玩的就是个潮!@Coldwings利用微信监管你的TF训练 - 知乎专栏已经实现了微信监控Tensorflow训练,受此启发,我决定开发一个控制keras训练的插件。(控制pytorch、mxnet、caffe交给各位了,动态图类的还可能可以用微信动态定义)现在已经实现了包括被动监控、主动查询、远程关机/停止训练等多项功能。效果展示: 与手机微信间的通信主要由littlecodersh/ItChat实现。欢迎fork这个项目的GitHub:QuantumLiu/wechat_callback,为了方便阅读(添乱)我硬着头皮加了双语注释。我很惭愧,只做了一点微小的工作,希望能抛砖引玉,得到各位的支持一起完善这个项目。一、主要功能介绍实时监控:在每个epoch结束后,自动发送本epoch训练信息以及两张分别代表所有batch和epoch信息的图表至文件传输助手。主动查询:在训练开始后的任意时刻,发送特定格式的指令,可获得指定查询项的信息。目前支持batch和epoch的各个指标的信息、显卡状态信息。远程指令:当你觉得训练已经收敛,或者同实验室的人催你停止训练时,优雅地终止训练甚至关机就变得很重要了。keras的fit方法中,可以通过在callback设置self.model.stop_training = True来实现在当前epoch结束时终止训练,否则只能Ctrl+c暴力停止。利用本插件,可以使用特殊格式的指令来指定停止epoch、立刻停止训练,甚至关机和取消关机。二、试一试!准备工作git clone https://github.com/QuantumLiu/wechat_callback.git cd wechat_callback需要用到的库:itchat,keras,numpy,scipy,matplotlib,_thread(py3)确保nvidia-smi可用,如果windows的cmd里找不到命令,请手动将nvidia-smi.exe所在位置添加进环境变量。2.运行测试脚本python wechat_test.py解析:在wechat_test.py的开头,首先import wechat_utilsimport wechat_utils #will login automaticly #wechat_utils.sendmessage()isthe callback class #wechat_utils.sendmessage()是keras的回调类,fit时传入callbacklist 在wechat_utils.py中:# Automaticly login when imported #在被import时自动登录 #============================================================================== itchat.auto_login(enableCmdQR=0.5,hotReload=True) itchat.dump_login_status()#dump 可以看到,当wechat_utils被import时会调用itchat.auto_login(),不出意外的话,将会在命令行显示二维码,需要使用手机微信扫码登录你的微信账号。在测试脚本里我使用numpy.random来生成训练数据,搭建了一个多层的FC网络model = Sequential() model.add(Dense(2048, input_dim=784)) model.add(Activation('relu')) for i in range(9): model.add(Dense(2048)) model.add(Activation('relu')) model.add(Dense(1,activation='sigmoid')) x=np.random.rand(nb_sample,dim) y=np.random.randint(2,size=(nb_sample,1)) 调用插件非常简单,只需要在fit时把wechat_utils.sendmessage()这个keras的Callback类传入Callbacklist。model.fit(x=train_x,y=train_y,batch_size=batch_size,nb_epoch=60,validation_data=(val_x,val_y),callbacks=[wechat_utils.sendmessage()]) 于是训练开始,手机会收到如下反馈:我们可以向它发送查询指令,指令一般包括关键词和参数以获取图表为例,包含以下任意关键词将被识别为获取图表指令:[u'获取图表','Show me the figure'] 参数则用{}或[]来指定,所有的指令均支持不指定参数,获取图表的默认参数是查询所有信息,例如‘Show me the figure’触发了指令,{batches}表示查询batches级别信息,[loss hinge]表示查询loss和hinge指标(一般的,同一属性参数用空格隔开)同理,['GPU','gpu',u'显卡']是gpu状态查询的关键词,用[]指定参数,如图,查询了gpu的显存和温度。GPU参数是根据nvidia-smi的预置参数确定的,全部都是大写,具体可查询属性请看GitHub的readme或者阅读源码。新增进度查询,关键词[u'进度','Progress']。 默认将保存每个batch的训练日志至本地,可通过制定参数savelog和fexten来指定是否保存日志以及生成的图片、日志、权重文件的后缀名。wechat_utils.sendmessage(savelog=True,fexten='TEST')关机指令关键词是[u'关机','Shut down','Shut down the computer',u'别浪费电了',u'洗洗睡吧'],使用{sec}和[name]指定等待时间和保存文件名,文件名不包括.h5。默认保存模型,如果不想保存,可以在消息中包含[u'不保存模型',"don't save"]比如:Shut down now{120},don't save取消关机只需要包含[u'取消','cancel','aaaa']就可以了,也就是说如果着急的话打一串a发过去也是可以的~立刻停止训练的关键词是['Stop now',"That's enough",u'停止训练',u'放弃治疗'](《西部世界》看多了)指定停止epoch的关键词是‘Stop at’,参数可以直接用整数表示,不需要[]。三、总结这个项目从有想法算起到写注释、开GitHub、写知乎不过两天半,做的很匆忙也很粗糙,特别是画图的细节和多线程的处理。我只是一名大一学生(休学ing),水平十分有限,恳请各位多加指点,提高我的姿势水平,如果这个项目能给你带来一点点便利或者灵感,那么我将感到十分荣幸与欣慰。好了!运行keras代码然后约妹子去看电影吧!再次感谢@Coldwings的原创创意。

a下载解压打开即可用真人棋牌游戏,不需要安装,支持XP、Win7、Win8等操作系统真人棋牌游戏,这么好的工具还是免费的。已赞过已踩过收起匿名用户2018-06-08




栏目分类
相关棋牌游戏技巧