GVKun编程网logo

开源公告|微信云端深度学习推理框架 WeChat TFCC 开源啦!

3

在本文中,我们将给您介绍关于开源公告|微信云端深度学习推理框架WeChatTFCC开源啦!的详细内容,此外,我们还将为您提供关于2015元宵节礼物——《刀塔传奇》骨骼动画查看器,开源啦!、Cocos2

在本文中,我们将给您介绍关于开源公告|微信云端深度学习推理框架 WeChat TFCC 开源啦!的详细内容,此外,我们还将为您提供关于2015元宵节礼物——《刀塔传奇》骨骼动画查看器,开源啦!、Cocos2d-x游戏《雷电大战》开源啦!要源码要资源快快来~~、Cordova 微信支付cordova-plugin-wechat 问题总结、Crabc低代码API开发管理平台,开源啦的知识。

本文目录一览:

开源公告|微信云端深度学习推理框架 WeChat TFCC 开源啦!

开源公告|微信云端深度学习推理框架 WeChat TFCC 开源啦!

WeChat TFCC 是微信技术架构部后台团队研发的服务端深度学习通用推理框架,也是腾讯深度学习与加速Oteam云帆的开源协同成果,具有高性能、易用、通用的特点,已在微信视频号、微信开放平台推荐系统、微信画像、微信智聆语音识别、语音合成等业务广泛使用; 支持81个ONNX Operation和108个Tensorflow Operation,覆盖推荐、NLP、语音等场景的各种主流模型,同时更多的Operation在持续接入中。

特性

WeChat TFCC由Library、Runtime、Generator三大组件构成,通过层层抽象、互相配合的方式,在保证高性能的前提下,极大的提高了扩展性和通用性。

一、高性能

TFCC通过模型结构优化、常数跟踪、算子优化等多方面措施优化通用模型推理性能。下图是BERT(bert-base)模型下的QPS对比,可以看到TFCC在CPU/GPU的性能都处于较高水准。

模型结构优化

模型结构优化包含常数折叠、模型剪枝、算子融合等。常数折叠可以预先算好部分数据,减少线上运行时的计算量。模型剪枝是减少模型的无用分支,算子融合是将多个小算子融合成一个大算子,减少内存和显存的带宽压力。

常数跟踪

常数跟踪是指跟踪常量的走向,是比常量折叠更激进的优化方案,该方案可以对详细区分一个矩阵存在的局部常量,从而得到模型的更详细的信息,达到更好的模型结构优化效果。

算子优化

TFCC Math Library是TFCC底层的算子库,部分算子是对底层oneDNN及cublas的封装,部分则是经过汇编级优化的高性能算子。CPU支持使用AVX2、AVX512指令集加速运算。

二、易用性

TFCC提供了一套完善的工具,可以很方便的一条命令将ONNX模型和Tensorflow模型转化为TFCC模型,然后由Runtime动态读入图结构,并用JIT技术动态生成图调用链, 业务无需编写模型代码,即可将训练模型转换并部署高性能运行。

三、通用性

TFCC的通用性包含模型通用性和硬件通用型两个方面。

模型通用性

TFCC提供一套完善的工具,通过类编译器架构:Frontend->Optimizer->Backend结构,将ONNX模型和Tensorflow模型转换为统一的TFCC内部模型表示。当前支持81个ONNX Operation和108个Tensorflow Operation,覆盖推荐系统、NLP等场景的主流模型;由于使用类编译器架构,WeChat TFCC可以很方便的进行平行扩展,以支持更多种类更多模型。

硬件通用性

TFCC目前支持的硬件平台有X86-64平台的CPU及NVIDIA的GPU,切换平台只需要修改调用参数即可,并且基于不同平台的特点进行汇编级性能优化。

结语

TFCC专耕于服务端的深度学习推理,还在不断迭代中,后续会加入更多的特性及性能优化,敬请期待。

开源地址:https://github.com/Tencent/WeChat-TFCC

2015元宵节礼物——《刀塔传奇》骨骼动画查看器,开源啦!

2015元宵节礼物——《刀塔传奇》骨骼动画查看器,开源啦!

首先声明,我不是第一个做出类似查看器的首作者,我所知道的首作者是johance,以下是它在cocoschina发布的贴子。


分享 刀塔查看器Flash導出版本(帶詳細解析說明)和Flash導入導出批處理文件
http://www.cocoachina.com/bbs/read.php?tid-219173.html


贴子里面描述了《刀塔传奇》骨骼动画的文件格式,我是参考这个文件格式写出来的。我的实现思路是将*.fca文件转换成DragonBonesCPP所需要的格式,然后就可以通过DragonBonesCPP播放出来了。注意这里没有转换成DragonBonesCPP的skeleton.xml,而是直接转换成了DragonBonesCPP解析skeleton.xml后的数据结构,免去了中间环节。当然你也可以通过我实现的代码接口导出DragonBonesCPP的三个文件sheet.pvr、texture.xml、skeleton.xml,然后像平时使用DragonBonesCPP的那样来加载播放,这样可以避免加载时转换,效率更高。


*.fca文件是一个zip压缩包,将其用WinRAR解压缩出来后,可以得到cha、plist、sheet.pvr三个文件,其中sheet.pvr是纹量集图片,包含了该角色使用的所有骨骼碎图。plist是纹量集的骨骼碎图描述文件,描述了每个骨骼碎图在sheet.pvr大图中的坐标、大小等区域信息。cha是骨骼动画数据文件,其格式如下所述。


cha格式:


声明:
以下格式来自于johance公布的贴子,只做了少量修饰和补充。


{}表示一个数据结构,带...表示有多个数据结构。


角色名称长度(4B)
角色名称 不包含"\0"
骨骼数量(4B)
{
骨骼名称长度(4B)
骨骼名称
骨骼图片文件名长度(4B)
骨骼图片文件名
骨骼索引(4B)
}...
动画个数(4B)
{
动画名称长度(4B)
动画名称
未知数据(4B) 固定为0x41c00000
动画帧数(4B)
{
帧类型(4B)
{
// 帧类型为1时才需要解析这个结构,否则跳过这个结构
未知数据1(4B)
声音文件名称长度(4B)
声音文件名称
未知声音数据(32B)
未知数据2(4B)
}
当前帧使用的骨骼数量(4B)
{
骨骼索引(2B)
透明度(1B)
a、b、c、d、tx、ty(类似Flash中的Matrix的6个float)
}...
}...
}...

类似Flash中的Matrix的6个float的详细含义请参考以下文章和AS代码。

as3中Matrix详解
http://wgcode.iteye.com/blog/838550


MatrixTransformer.as:

public static function getScaleX(m:Matrix):Number
{
    return Math.sqrt(m.a*m.a + m.b*m.b);
}


public static function getScaleY(m:Matrix):Number
{
    return Math.sqrt(m.c*m.c + m.d*m.d);
}


public static function getSkewX(m:Matrix):Number
{
    return Math.atan2(-m.c,m.d) * (180/Math.PI);
}


public static function getSkewY(m:Matrix):Number
{
    return Math.atan2(m.b,m.a) * (180/Math.PI);
}


《刀塔传奇》骨骼动画查看器:



《刀塔传奇》山寨版(未完成,将在之后一段时间再开源):




开发环境:
Cocos2d-x-3.3 Final

DragonBonesCPP


Windows安装包下载地址:

http://pan.baidu.com/s/1dDyBu85


Android安装包下载地址:

http://pan.baidu.com/s/1rVOCI


资源下载地址:

http://pan.baidu.com/s/14NgoI


项目地址:

https://github.com/zym2014/DotaSkeletonAnim

Cocos2d-x游戏《雷电大战》开源啦!要源码要资源快快来~~

Cocos2d-x游戏《雷电大战》开源啦!要源码要资源快快来~~

写在前面的话:这是笔者开发的第二个小游戏《雷电大战》,之前就过这个游戏和《赵云要格斗》一样,最终将会开源。由于自己的一些个人原因。这个游戏还没有完成,但是许多网友都过来寻求代码或资源,本着开源的精神,笔者今天将它们共享给出大家。

注:目前游戏还没有完成,代码全是笔者原创,资源有一部分原创,有一部分网上搜集。

若是觉得本项目对你有用,那么请给辛苦的笔者的GitHub右上角Star一颗星星!不胜感激~~~~

下载地址

https://github.com/appleappleapple/GameOfShooting

游戏专辑

http://blog.csdn.net/column/details/cocos2dxforgame.html

专辑目录

Cocos2d-x《雷电大战》(1)-双层地图无限滚动
Cocos2d-x《雷电大战》(2)-精灵随手指移动,你点哪我走哪!
Cocos2d-x《雷电大战》(3)-子弹无限发射
Cocos2d-x《雷电大战》(4)-策略模式实现不同子弹切换!!
Cocos2d-x《雷电大战》(5)-单例模式英雄飞机闪亮登场!
Cocos2d-x《雷电大战》(6) 智能敌机AI来袭–飞行路径算法设计与实现(上)
Cocos2d-x《雷电大战》(6) 智能敌机AI来袭–飞行路径算法设计与实现(下)

工程目录

简要介绍

《雷电大战》是一框射击类游戏,代码全部是本人原创,资源图片部分原创,部分网上搜集。游戏的具体代码实现过程以及游戏效果请看笔者博客地址:http://www.jb51.cc/tag/http://blog.csdn.net/evankaka

项目环境

Cocos2d-x版本:3.3以上 (至少 3.X)
开发环境:VS2013 + WIN7
游戏专辑地址:http://www.jb51.cc/cata/246316

项目

1.打开方式

找到proj.win32文件夹下,test.sln。然后使用VS2013打开即可,同时配置Cocos2d-x3.x版本,2.x是编译不通过的!

2.代码路径

主目录Classes文件夹下,具体文件可看博文内容

3.资源路径

主目录Resources文件夹下

部分效果


其它Cocos2d-x项目

《赵云要格斗》

Cordova 微信支付cordova-plugin-wechat 问题总结

Cordova 微信支付cordova-plugin-wechat 问题总结

cordova-plugin-wechat是cordova微信支付的插件安装方法请见文档,这里不再说明

https://www.npmjs.com/package/cordova-plugin-wechat

按照官方步骤安装并验证成功后发起支付

var params = {

    partnerid: ''10000100'', // merchant id

    prepayid: ''wx201411101639507cbf6ffd8b0779950874'', // prepay id

    noncestr: ''1add1a30ac87aa2db72f57a2375d8fec'', // nonce

    timestamp: ''1439531364'', // timestamp

    sign: ''0CB01533B8C1EF103065174F50BCA001'', // signed string

};



Wechat.sendPaymentRequest(params, function () {

    alert("Success");

}, function (reason) {

    alert("Failed: " + reason);

});

这里的参数是调用微信支付api

1.统一下单接口 拿到prepayid https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

注意:开发文档选择app支付

2.根据微信支付demo 生成parms参数即可

遇到的问题以及排查步骤:

1.Wechat.sendPaymentRequest()方法提示普通错误,经查看代码发现是因为微信调起支付接口返回-1签名错误。

经过签名工具核对参数名以及值发现都是正确的

验签工具地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=20_1

2.经过仔细其他网友资料发现

这里说的是Android系统

导致签名错可能是对apk签名时使用的keystone错误,keystone的生成alisa生成不再说明(因为不是做app开发没有深究,只拿的之前生成的)

具体可以参考cordova 文档http://cordova.axuer.com/docs/zhcn/latest/guide/platforms/android/index.html#签名一个应用

执行

cordova run android --release -- --keystore=../my-release-key.keystore --storePassword=password --alias=alias_name --password=password.

即可成功。

Crabc低代码API开发管理平台,开源啦

Crabc低代码API开发管理平台,开源啦

       Crabc 是一款低代码开发平台,企业级 API 接口发布和管理系统,采用 SpringBoot、JWT、Mybatis 等框架实现。 支持(mysql、oracle、postgresql、sqlserver、elasticsearch、mongodb) 等数据源, 在编辑框内编写 SQL 后即可快速生成 Rest 接口对外提供服务, 可通过插件的方式扩展支持其他的数据源。平台还将支持接口转发、黑白名单、权限认证、限流、缓存、监控等一站式服务功能。

    Crabc让非技术人员也可参与到业务功能的开发和实现,只要会写SQL就可以快速的开发出来功能完备的API接口,API参数、请求方式、授权等功能轻松修改即可生效。

    基于 Crabc 接口发布和管理的能力,企业快速搭建一套后台系统为 APP、web 或多方系统对接提供接口平台。70% 的接口都可在 Crabc 平台上完成开发和管理,释放开发人员的基础功能开发时间,让开发人员只专注于复杂的业务逻辑实现。

开源地址:https://gitee.com/linebyte/crabc

img_4.png

关于开源公告|微信云端深度学习推理框架 WeChat TFCC 开源啦!的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于2015元宵节礼物——《刀塔传奇》骨骼动画查看器,开源啦!、Cocos2d-x游戏《雷电大战》开源啦!要源码要资源快快来~~、Cordova 微信支付cordova-plugin-wechat 问题总结、Crabc低代码API开发管理平台,开源啦的相关知识,请在本站寻找。

本文标签: