价知分离自学习

昨天回来的晚,有一个原因是等IC卡的快递。快递到手连忙回去测试,一番摸索折腾,算是搞定,早上又跑回馆里,在机器上实战测试顺利通过。
解决了这个IC卡问题,工作顺畅多了。
昨晚折腾的时间不长不短,官网指望不上,在网上搜索资料半天,是一个简单的回复直接解决了问题。简单而孤单的解决办法,是心里没底的我早早赶过去测试的原因。
现在无论是线上还是线下,卖设备的绝少提供技术支持,尤其是那种低价通用设备。这与当年卖设备的老板抬起头滔滔不绝,恨不得把原理都给你讲清楚截然不同。
也许是硬件软件渠道分家,也许是硬件利润低不值得提供技术,也许是厂商、网上大牛们认为这种技术地球人都知道。
好歹学会了,成本还可以。

世界排名前一百

今天在外面跑了一天。早上走的时候,将矿卡机打开,跑SAI的自对弈程序,晚上回来一看自对弈贡献排名榜,我的排名已经马上就要突破90了。

SAI是一款新的围棋AI,据说名字是取自日本著名漫画《棋魂》。SAI以AlphaGo zero公开论文为基础开发,思路更接近katago,但权重的积累采用了leelazero最初的方式,让世界上围棋爱好者们通过注册账号,运行自对弈程序,然后将棋谱文件上传更新权重。

哈哈,90名,这应该是我获得的世界最好排名成绩了啊!

再看看后面,一共140多人罢了。

python中去掉字符串中的\xa0、\t、\n等字符

读取excel文件中会有显示\xa0、\t、\n等字符,可以使用split去掉

import os
import xlrd
import math
fi_xls = 'tiku.xlsx'
wb = xlrd.open_workbook(fi_xls)
sheet1 = wb.sheet_by_index(0)
for r in range(sheet1.nrows):
    col = []
    for c in range(sheet1.ncols):
        m1 = sheet1.cell(r,c).value
        col.append("".join(m1.split()))
    print(col)

当split中不带参数时,表示分割所有换行符、制表符、空格。

同时Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分,不再会对bytes字节串进行自动解码。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。

json dump有一个ensure_ascii参数,当它为True的时候,所有非ASCII码字符显示为\uXXXX序列,只需在dump时将ensure_ascii设置为False即可,此时存入json的中文即可正常显示。例如:

json.dump(f, ensure_ascii=False)

katago 1.2不支持cuda 10.2

昨天晚上连续抽风的网络终于恢复正常,赶紧该下载的下载,该修改的修改,忙活完已经次日。
下午回来后,又将几台机器的补丁打了一下。其中矿卡机最近用的较少,补丁也最多,其中最大的补丁是cuda10.2。
安装完毕之后,用sabaki调用二犬对弈一局,结果提示错误。单独调用,发现leelazero正常,而katago无法启动,提示cuda版本问题。
显然这是cuda升级的后遗症,修改cuda设置,重新编译katago,均无效。
只好卸载掉cuda,然后重新安装cuda10.1,重新启动机器之后,恢复正常。
katago自从7月份1.2版本后,就没有再升级更新,这种情况下对新版本cuda支持出现问题,这样后期暂且就别再升级贪新了。

自甘堕落的HP

因为业务需要,公司新购了一台HP彩色激光打印机。中午工作告一段落后,准备利用一点时间,将打印机安装调试好,再去吃饭不迟。
谁知机器拆箱落位,驱动下载安装完毕,测试页却迟迟打印不出来。肚子抗议之下,只好先去吃饭再说。
匆匆吃饭完回来,看提示是缺纸,根据经验,应该是进纸器有问题。将机器翻将过来检查,这一看,也是明白最近施乐为何要强硬收购惠普了。
虽然是最低端的激光打印机,材料也不能这么节省吧?那底部进纸部件看似很复杂,但材料薄得跟卡片似的,不好好伺候根本不能到位。
从6L到1020,从5000到5200,HP的打印机总是以泼辣著称。估计和康巴丝一样,耐用影响了业绩,开始降低质量了,成本是降了,口碑也毁了。
HP今天这个境地,不是虎落平阳,只能说是自甘堕落了。

双矿卡组围棋AI平台更经济

今天等公共汽车的时候,看到一辆374路车经过,看的名字这么眼熟。想想,原来是最近在淘宝网浏览的时候,经常出现矿卡代号。
网上对矿卡的称呼跟黑话似的,应该是约定俗成的。比如374显卡,就是AMD的rx370显卡4g显存版,同样还有474,对应的478则是rx470的8G显存版。
相对而言N卡的称呼更专业一点,和老黄的刀法精准明确有关,比如我买的3g显存矿卡,就叫做p106-90,而6g显存版则是p106-100。因为不止是显存有差异,核心数也不同。
在家里用gtx1660显卡下棋的时候,lizzie下,胜率变化和变化图显示明显要快过p106-90的矿卡,而相同参数下用sabaki对弈,一盘收完单官的对局,在1个半小时左右,比矿卡要少1个小时。
但如果使用双矿卡,那样速度应该就应该就会反超,因为本身功耗已经缩减,付出的代价就是闹人的噪音了。

Windows下安装围棋AI程序

昨天返程终于涨经验了,取票之前计算一下时间,改签了合适时间的票,省却了候车时间,早到家半个小时。
回家后离给儿子做饭时间还有段时间,就利用这段时间把leelazero、katago、sabaki和lizzie一并安装了。
时间紧迫,就没有再专门安装Linux系统,直接安装在原先的Win7系统上。首先更新NVIDIA驱动,安装最新版的cuda,而其他系统则是直接安装编译好的windows 64位GPU程序,都还顺利,就是下载leelazero最新权重的文件时候,下载不了10M就断线。
暂且不管leelazero,先测试katago。但sabaki中设置好后,总是提示gtp错误,而换到lizzie下,用lizzie自带编译的katago则正常运转。
这看来是katago程序的问题了,于是直接运行出错那个katago程序,果然,是提示找不到某个版本的cuda的dll文件。看来是那个版本的katago编译时cuda版本较低。
懒得更换cuda版本了,直接找到那个高版本dll文件,拷贝到桌面上,将文件名修改为所缺失dll的文件名,然后拷贝回去。简单粗暴解决问题。
在解决gtp问题到网上搜索的时候,发现主要都是针对leelazero的,katago很少。好容易找到一篇,也是文不对题。但看着看着,怎么这么眼熟,全文一看,这不是我前段时间写的katago环境搭建的随笔吗?
不是说不能用我的文章,不署名也无所谓,但既然附在katago介绍文的下面,当做技术文,总要把环境注明,再说也帮俺改改语顺什么的吧。

django通过字典新增数据

django一对一信息的创建可以通过几种方式

a、使用create方式

方式一: Publish.objects.create(“name”=”人民出版社”,city=”北京”}

方式二: Publish.objects.create(**{“name”:”文艺出版社”,”city”:”上海”})

b、使用save方式

方式一:

book1=Book(title=”python”,price=”88″,publish_id=”1″,publication_date=”2017-06-18″)

book1.save()

方式二:

author1=Author(name=”jerry”)

author1.save()

其中使用create方式中第二种时,可以直接使用根据数据表字段设置的字段直接新增:

dict={“name”:”文艺出版社”,”city”:”上海”}

Publish.objects.create(**dict)

小米电纸书,矛盾的产品

许久之前,就注意到小米要做电纸书的报道,开始还颇为期待。前些日子网上草图放出,看到那宽阔的边框后,已经颇为失望。
今天正式发布,更失望的是高价格和212的低ppi。
小米产品一向以低价格高指标吸引人,对标的往往是世面上流行的高端产品,电纸书自然是要跟亚马逊的kindle抢市场。但这次发布的电纸书,硬件指标上唯一压倒kindle的只有存储容量了,而这又和他们宣传的云端存储亮点相矛盾,虽说现在存储芯片价格跳水,但成本放在存储上实在浪费。
电纸书的高存储主要应对的是PDF、漫画等文件,而6寸屏加低ppi,看漫画及PDF文件绝无乐趣可言。
如果说这样的配置是为了看正版书,推广自家的多看云平台,但多看本身是提供客户端的,而客户端最受欢迎的应该是kindle版,那就不如买个低配低价口碑好的kindle,装上多看客户端,谁还会买小米自家的电纸书?
怎么看,小米电纸书,都是一个矛盾的产品。

小米多看电纸书发布:6寸212ppi背光墨水屏、16GB存储、大电池
https://m.mydrivers.com/newsview/657876.html?fr=kkj

捅破硬件数据传输窗户纸

经过近半天的摸索,终于将设备modbus的数据接收发送搞明白了。
两年前就曾经接触过,当时因为第一次接触硬件,也是一头雾水,后因为种种原因也就搁下了。
两年过去,再接触还是一头雾水。好在两年之间,网上相关的资料多了一些,再加上对某些技术关键细节进行了沟通,终于算是落实于理论,就等实际测试了。
学习新知识,理解自然重要,但和自己过往知识划清界限也是非常必要。经验主义要不得,否则总会时不时蹦出来捣乱,要么抵触,要么带偏。
还好,算是捅破一层窗户纸。