首页 文章 精选 留言 我的

精选列表

搜索[MIT协议],共10002篇文章
优秀的个人博客,低调大师

Facebook 联同 MIT 等发布研究手稿:解释深度学习实际工作原理的理论

Facebook、普林斯顿大学和麻省理工学院的 AI 研究人员近日宣布联合出版了一本名为《The Principles of Deep Learning Theory: An Effective Theory Approach to Understanding Neural Networks(深度学习理论原理:理解神经网络的一种有效理论方法)》的书籍。目前,该书的手稿已经公开提供。 根据介绍,在基本层面上,该书提供了一个从第一性原理(first principles)理解深度神经网络(DNN)的理论框架。对于 AI 从业者来说,这种理解可以大大减少训练这些 DNN 所需的试验和错误的数量。例如,它可以揭示任何给定模型的最佳超参数,而不需要通过今天所需的时间和计算密集型实验。 Facebook AI 研究科学家 Sho Yaida 称,DNN 是现代 AI 研究的关键要素之一。但对于包括大多数 AI 研究人员在内的人都认为,DNN 太过复杂,无法从第一性原理的角度来理解。这一问题的存在意味着,尽管业界已通过实验和反复试验在 AI 方面取得了很大进展,但研究人员对 DNN 的许多关键特性仍一无所知,而这些特性恰恰使得 DNN 极其有用。他认为,如果研究人员对这些关键特性有更深入的了解,可能会带来一些显著的进步,并开发出强大得多的 AI 模型。 Yaida 将 AI 与工业革命初期的蒸汽机进行了比较。并表示,虽然蒸汽机永远改变了制造业,但直到接下来的一个世纪热力学定律和统计力学原理得到发展,科学家们才能够在理论层面上充分解释它是如何工作的以及为什么工作。虽然缺乏了解的这个问题并没有阻止人们改进蒸汽机,但热机原理的发现却大大加快了改进的步伐。 Yaida 指出,AI 领域目前就正处于类似的关头。DNN 被视为黑匣子,因太过复杂导致无法从第一性原理的角度来理解。因此,AI 模型通过反复试验加以微调,类似于人们改进蒸汽机的方式。不过 Yaida 也表示,试错并不一定是坏事,它可以结合多年形成的经验来巧妙进行。但试错也只是描述 DNN 及其实际运作方式的统一理论语言的替代品。 公告指出,此书只是重新构想 AI 科学这一更大项目的第一步,该项目既源自第一性原理,同时又专注于描述现实模型的实际工作方式。如果成功,这种深度学习的一般理论可能会支持更强大的人工智能模型,甚至可能引导我们建立一个研究智能通用方面的框架。 值得注意的是,虽然书中描述的框架可以扩展到现代 AI 社区使用的真实世界 DNN。但此书本身最主要的还是关注最简单的深度学习模型(深度多层感知器)。 有了这个新的有效理论,我们希望AI 理论家能够推动对神经网络有更深入、更全面的理解。还有很多的东西需要计算,但这项工作有望使这个领域更接近了解这些模型的哪些特定属性使它们能够智能地执行。我们还希望这本书能够帮助 AI 社区减少有时会限制当前进展的试错循环。我们希望帮助从业者快速设计更好的模型——效率更高、性能更好、训练更快。特别是,那些设计 DNN 的人将能够在没有任何训练的情况下选择最佳超参数,并选择最佳算法和模型架构以获得最佳结果。 更多详情可查看官方博客。

优秀的个人博客,低调大师

Bytom矿池接入协议指南

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 矿机配置 https://gist.github.com/HAOYUatHZ/a47400bde4a138825faef415387b532c 固件升级 https://service.bitmain.com.cn/support 两个都要刷,先后顺序没关系 update_1000.tar.gz 升级时间较长,升级期间请勿断电 配置节点 测试时可以考虑切换到 testnet 分支降低难度使cpu挖矿也能出块,./bytomd init --chain_id testnet 或 ./bytomd init --chain_id solonet init/node 初始化/启动时可以加上 -r "your/directory" 指定数据目录,若目录不存在则会自动新建该目录 流程 1、初始化节点先建个账户、地址,不然就挖到空地址 2、矿地址支持自定义,包括 非本地钱包地址 3、API doc 4、矿池向节点 getwork get-work 得到的 block_header 是动态压缩变长的需要进行解析 使用 golang 的话可以利用 "github.com/bytom/protocol/bc/types" 中 block_header.go 中的函数 UnmarshalText 使用别的语言的话参考 "github.com/bytom/protocol/bc/types" 中 block.go 中的函数 UnmarshalText, readFrom, ReadVarintXXX. ReadVarintXXX 需要参考 go函数 binary.ReadUvarint 5、解析完后进行下发 通信格式参考 https://github.com/Bytom/B3-Mimic/blob/master/docs/STRATUM-BTM.md - 收到任务有 login 和 矿池主动下发, 没走 getjob, 只走 login 和 池主动下发 - 这俩都是用 submit 提交 逻辑参考 https://github.com/Bytom/B3-Mimic/blob/master/main.go - Version, Height, Timestamp, Bits 要转小端 - 关于 target + btc.com 分享了一段 antpool 的代码 ~, 并说 target 用以对 bits 对应的 difficulty 放松难度,用来使矿机在单位时间内能够有提交,然后矿池再验证~ var Diff1 = StringToBig("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF") func GetTargetHex(diff int64) string { padded := make([]byte, 32) diffBuff := new(big.Int).Div(Diff1, big.NewInt(diff)).Bytes() copy(padded[32-len(diffBuff):], diffBuff) buff := padded[0:4] targetHex := hex.EncodeToString(Reverse(buff)) return targetHex } 矿池下发的targethex是拿 标准难度(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) / 一个难度值得出的 这个值叫做矿池难度 一般会动态调整 保证矿机提交 share 的频率是稳定的 比如1分钟提交三次 提交得快了就会增加这个值 慢了就会降低这个值 target 是 16 进制的难度,1, 1024, …..等等,和前导 0 的个数有关,动态调整用来保证矿机每分钟至少提交三次,用来计算矿机算力以及防止矿机算力作弊 ffff3f00 对应 1024,c5a70000 对应 100001 6、提交完之后矿池需要做验证 header_hash 使用 golang 的话可以利用 "github.com/bytom/protocol/bc/types" 中 types.BlockHeader{} 的 Hash() 使用别的语言的话参考 https://github.com/Bytom/B3-Mimic/blob/master/docs/blhr_hash_V3.go 然后就要开始用 tensority 算 hash 结果 很遗憾现在 go 版本、cpp_openblas 版本、cpp_simd 版本都达不到理想的验证效果, 如果想做一个可用的矿池目前有必要上 gpu, 可以考虑 n 卡 1050,或者阿里云服务器 P4 cpp 的 tensority 逻辑在这里,并指出了如何针对 gpu 进行优化的建议,这样矩阵乘法能够跑进 2.5 ms, 整个 tensority 大概 6 ms init matlist 有开销,seed 其实 256 个区块才改变一次, 遇到新的 seed 每次 gpu tensority 可能需要 100 ms,但做了 cache 的话 init matlist 可以忽略,可以认为每次 tensority 只需要不超过 6 ms 用 golang 可以 cgo 调用 c 代码,参考 https://github.com/Bytom/bytom/blob/dev-ts-simd/mining/tensority/algorithm.go 改好 gpu 版本后可以参照这个进行调用 7、验证通过后使用 submit-work 接口进行提交 提交的结果 也是 BlockHeader type 的 使用 golang 的话可以利用 "github.com/bytom/protocol/bc/types" 中 block_header.go 中的函数 MmarshalText 使用别的语言的话参考 "github.com/bytom/protocol/bc/types" 中 block.go 中的函数 MarshalText, WriteTo, WriteVarintXXX. WriteVarintXXX 需要参考 go函数 binary.PutUvarint 8、retarget 见上面,动态调整使矿机每分钟提交三次 9、收益计算 略 批量转账 主网地址 bm 开头,长度普通地址42,多签62 工具 https://github.com/Bytom/bytom/tree/master/tools/sendbulktx 每次发币都会生成新的找零地址 bytom input有21个的限制

优秀的个人博客,低调大师

Swift里的protocol--协议

我感觉它和java或go里的接口,差不多一个意思吧。 protocol FullyNamed { var fullName: String { get } } struct Person: FullyNamed { var fullName: String } class Starship: FullyNamed { var prefix: String? var name: String init(name: String, prefix: String? = nil) { self.name = name self.prefix = prefix } var fullName: String { return (prefix != nil ? prefix! + " " : "") + name } } var ncc1701 = Starship(name: "Enterprise", prefix: "USS") print(ncc1701.fullName) let john = Person(fullName: "John Appleseed") print(john.fullName) protocol RandomNumberGenerator { func random() -> Double } class LinearCongruentialGenerator: RandomNumberGenerator { var lastRandom = 42.0 let m = 139968.0 let a = 3877.0 let c = 29573.0 func random() -> Double { lastRandom = (lastRandom * a + c) return lastRandom / m } } let generator = LinearCongruentialGenerator() print("Here's random number: \(generator.random())") print("And another one: \(generator.random())") protocol Togglable { mutating func toggle() } enum OnOffSwitch: Togglable { case Off, On mutating func toggle() { switch self { case Off: self = On case On: self = Off } } } var lightSwitch = OnOffSwitch.Off lightSwitch.toggle() print(lightSwitch)

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册