avatar
lua里面实现点乘# Programming - 葵花宝典
b*i
1
看了torch有感,lua可以通过运算符重载实现矩阵的运算。于是我按照例子做了加法,
这个需要判断a+b是两个矩阵相加,还是其中有一个非矩阵的数,后面这个似乎数学里
面是不支持的,但是matlab支持。而且很方便,比如我生成一个向量 x=-pi:0.1:pi,然
后y=sin(x)+10,就是把向量的结果都平移10.否则我还需要自己写一个全都是常数10的
向量。
而做乘法的时候发现,在lua里面我也可以实现一维矩阵和常数的乘法,然后通过运算
符重载重用*这个符号,比如c=a*5,里面a和c都是矩阵(向量)。做矩阵和矩阵乘法的
时候,有两种,一种是数学的乘法,一种是Matlab里面的点乘 .*就是两个矩阵每个元
素相乘。
那么,现在我没有实现两个矩阵的乘法。我先在lua里面要实现点乘,很简单。在犹豫
要不要把点乘重载到*那里去。缺点是,这个不是通用的矩阵乘法,而是点乘。我如果
把点乘重载到*那里,那么以后如果增加了矩阵乘法(模仿torch),还得改掉。
而点乘在lua里面原本不存在。难道我需要改lua的编译器来增加点乘,点除,点乘方等
几个运算符?怎样做最好?
avatar
C*5
2
不要折腾Lua了。Torch大部队都已经转进pyTorch了。
avatar
b*i
3
真没想到,还没学呢就过时了。
其实我搞的是某种游戏的lua引擎,不是用来机器学习的。不过,我准备在“游戏”中
演示神经网络的运算,比如识别手写数字这个功能。
那么如果做机器学习的话,pyTorch和tensorflow比怎样呢?

【在 C*****5 的大作中提到】
: 不要折腾Lua了。Torch大部队都已经转进pyTorch了。
avatar
d*n
4
lua是不是在网络基础层还有些用途啊?
avatar
g*t
5
LuaJIT的作者mike pall恐怕是一切jit里面最牛的一位了。但是他离开了。Move on吧
。而且似乎还有些人事是非。


: lua是不是在网络基础层还有些用途啊?



【在 d****n 的大作中提到】
: lua是不是在网络基础层还有些用途啊?
avatar
d*n
6
太伤感了。大家怎么识别好用的oss和语言工具的啊?是不是50岁以上老头的不能投,
大公司的不能投,20岁小年轻的不能投?

【在 g****t 的大作中提到】
: LuaJIT的作者mike pall恐怕是一切jit里面最牛的一位了。但是他离开了。Move on吧
: 。而且似乎还有些人事是非。
:
:
: lua是不是在网络基础层还有些用途啊?
:

avatar
T*i
7
https://github.com/LuaJIT/LuaJIT/commits/v2.1
唯一的结果就是挪到github上面去了。你看看都是谁在维护?
Fact check很困难么?
同意lua不太适合那种大二复杂的项目。这个语言太简单了。我最烦的是连常量都不支
持。但是简单也是它最大的卖点。希望人类能够拥有一个一成不变的语言。js已经被毁
了。

【在 g****t 的大作中提到】
: LuaJIT的作者mike pall恐怕是一切jit里面最牛的一位了。但是他离开了。Move on吧
: 。而且似乎还有些人事是非。
:
:
: lua是不是在网络基础层还有些用途啊?
:

avatar
w*g
8
老魏你好!
Lua的本意是嵌入式语言,说白了就是用来给C/C++项目写配置增加灵活性的。
如果从"Lua必须配合C/C++使用"这个前提来看,Lua的局限性其实根本就不是问题。
不过从Lua的下标从1开始这个事实来看,怕是创始人可能都不同意我这个观点。
另一个嵌入式语言python已经彻底做大了,再用来嵌入,反而有包袱。
我同意Lua一成不变是个好事。

【在 T********i 的大作中提到】
: https://github.com/LuaJIT/LuaJIT/commits/v2.1
: 唯一的结果就是挪到github上面去了。你看看都是谁在维护?
: Fact check很困难么?
: 同意lua不太适合那种大二复杂的项目。这个语言太简单了。我最烦的是连常量都不支
: 持。但是简单也是它最大的卖点。希望人类能够拥有一个一成不变的语言。js已经被毁
: 了。

avatar
g*t
9
回到楼主的主题。如果是我,我会用emacs写文本预处理。
处理后再送到后一步。
例如你自己定义的点乘符号是 A***B
那么自动在每个地方把 A***B 替换成f(A,B)完事
你不用函数,要重载运算符就是为了写着方便吧?
avatar
g*t
10
魏老师回来了?
之前我是在ultimate lambda还是射门地方看有人说mike pall
Move on了。看来是谣言
谣言出处:
https://realmensch.org/2016/05/28/goodbye-lua/


: https://github.com/LuaJIT/LuaJIT/commits/v2.1

: 唯一的结果就是挪到github上面去了。你看看都是谁在维护?

: Fact check很困难么?

: 同意lua不太适合那种大二复杂的项目。这个语言太简单了。我最烦的是
连常量
都不支

: 持。但是简单也是它最大的卖点。希望人类能够拥有一个一成不变的语言
。js已
经被毁

: 了。



【在 T********i 的大作中提到】
: https://github.com/LuaJIT/LuaJIT/commits/v2.1
: 唯一的结果就是挪到github上面去了。你看看都是谁在维护?
: Fact check很困难么?
: 同意lua不太适合那种大二复杂的项目。这个语言太简单了。我最烦的是连常量都不支
: 持。但是简单也是它最大的卖点。希望人类能够拥有一个一成不变的语言。js已经被毁
: 了。

avatar
g*t
11
LuaJit和lua的人能合并吗?


: 老魏你好!

: Lua的本意是嵌入式语言,说白了就是用来给C/C 项目写配置增加灵活性的。

: 如果从"Lua必须配合C/C 使用"这个前提来看,Lua的局限性其实根本就不是问
题。

: 不过从Lua的下标从1开始这个事实来看,怕是创始人可能都不同意我这个观点。

: 另一个嵌入式语言python已经彻底做大了,再用来嵌入,反而有包袱。

: 我同意Lua一成不变是个好事。



【在 w***g 的大作中提到】
: 老魏你好!
: Lua的本意是嵌入式语言,说白了就是用来给C/C++项目写配置增加灵活性的。
: 如果从"Lua必须配合C/C++使用"这个前提来看,Lua的局限性其实根本就不是问题。
: 不过从Lua的下标从1开始这个事实来看,怕是创始人可能都不同意我这个观点。
: 另一个嵌入式语言python已经彻底做大了,再用来嵌入,反而有包袱。
: 我同意Lua一成不变是个好事。

avatar
N*m
12
游戏引擎里用得多,基本上就是配合c/c++使用

【在 w***g 的大作中提到】
: 老魏你好!
: Lua的本意是嵌入式语言,说白了就是用来给C/C++项目写配置增加灵活性的。
: 如果从"Lua必须配合C/C++使用"这个前提来看,Lua的局限性其实根本就不是问题。
: 不过从Lua的下标从1开始这个事实来看,怕是创始人可能都不同意我这个观点。
: 另一个嵌入式语言python已经彻底做大了,再用来嵌入,反而有包袱。
: 我同意Lua一成不变是个好事。

avatar
b*i
13
老魏,你还用lua吗?记得你的智能家居使用lua的。

【在 T********i 的大作中提到】
: https://github.com/LuaJIT/LuaJIT/commits/v2.1
: 唯一的结果就是挪到github上面去了。你看看都是谁在维护?
: Fact check很困难么?
: 同意lua不太适合那种大二复杂的项目。这个语言太简单了。我最烦的是连常量都不支
: 持。但是简单也是它最大的卖点。希望人类能够拥有一个一成不变的语言。js已经被毁
: 了。

avatar
b*i
14
这个确实不是问题,用f(A, B)也可以。我想着matlab用.*就痒痒,想在Lua里面自定义
一个运算符。现在看还是算了吧。

【在 g****t 的大作中提到】
: 回到楼主的主题。如果是我,我会用emacs写文本预处理。
: 处理后再送到后一步。
: 例如你自己定义的点乘符号是 A***B
: 那么自动在每个地方把 A***B 替换成f(A,B)完事
: 你不用函数,要重载运算符就是为了写着方便吧?

avatar
g*t
15
运算符重载这种,是自己开发个东西,全地球人都用的思路。
如果只是自用,那么我想Emacs字符替换,在lue-mode的code里面加两行
应该不难。
后者还极度不容易出毛病。因为本质上就是函数。

【在 b***i 的大作中提到】
: 这个确实不是问题,用f(A, B)也可以。我想着matlab用.*就痒痒,想在Lua里面自定义
: 一个运算符。现在看还是算了吧。

avatar
T*i
16
其实我还是认为Lua是最好的嵌入式语言。LuaJit有一批死忠用户。继续发展没有任何
问题。
guvest其实也没说错。去年Mike Pall确实想撂挑子。但是后来又继续维护了。我估计
有舍不得的因素在里面。换你你舍得么?
我在想,如果把golang的GC移植到LuaJIT,不知道有多少工作量?可行不可行?
@bihai,我还在用Lua。我的智能家居的设计目前依然是最优的。
avatar
a*e
17
http://lua-users.org/wiki/CustomOperators

【在 b***i 的大作中提到】
: 这个确实不是问题,用f(A, B)也可以。我想着matlab用.*就痒痒,想在Lua里面自定义
: 一个运算符。现在看还是算了吧。

avatar
g*t
18
我的一点浅见:去年可能LUA的人在版本更新上有人放毒,Mike Pall受不了了?
假设你做个软件,你的下家做这个的外围。这个外围不停的打你的功能的脸。那
你更新下版本,憋死你的下家,这是技术基本功。
现在Mike Pall回来了,可能是谈好了。

【在 T********i 的大作中提到】
: 其实我还是认为Lua是最好的嵌入式语言。LuaJit有一批死忠用户。继续发展没有任何
: 问题。
: guvest其实也没说错。去年Mike Pall确实想撂挑子。但是后来又继续维护了。我估计
: 有舍不得的因素在里面。换你你舍得么?
: 我在想,如果把golang的GC移植到LuaJIT,不知道有多少工作量?可行不可行?
: @bihai,我还在用Lua。我的智能家居的设计目前依然是最优的。

avatar
T*i
19
Mike不喜欢lua 5.3众所周知。2015年就开撕了。
我不需要lua 5.3。估计luajit社区也没人需要。
我说了,lua最大的优点就是不变。虽然我认为能支持const就完美了。但是如果不支持
也行。我宁愿它永远不变。
只要持续完善性能和稳定性就好。
看看这一年的进展。X64, arm64, GC64。Mike Poll did a good job。

【在 g****t 的大作中提到】
: 我的一点浅见:去年可能LUA的人在版本更新上有人放毒,Mike Pall受不了了?
: 假设你做个软件,你的下家做这个的外围。这个外围不停的打你的功能的脸。那
: 你更新下版本,憋死你的下家,这是技术基本功。
: 现在Mike Pall回来了,可能是谈好了。

avatar
a*g
20
good

【在 T********i 的大作中提到】
: 其实我还是认为Lua是最好的嵌入式语言。LuaJit有一批死忠用户。继续发展没有任何
: 问题。
: guvest其实也没说错。去年Mike Pall确实想撂挑子。但是后来又继续维护了。我估计
: 有舍不得的因素在里面。换你你舍得么?
: 我在想,如果把golang的GC移植到LuaJIT,不知道有多少工作量?可行不可行?
: @bihai,我还在用Lua。我的智能家居的设计目前依然是最优的。

avatar
a*g
21
简单才是王道,越乐越有价值

【在 T********i 的大作中提到】
: Mike不喜欢lua 5.3众所周知。2015年就开撕了。
: 我不需要lua 5.3。估计luajit社区也没人需要。
: 我说了,lua最大的优点就是不变。虽然我认为能支持const就完美了。但是如果不支持
: 也行。我宁愿它永远不变。
: 只要持续完善性能和稳定性就好。
: 看看这一年的进展。X64, arm64, GC64。Mike Poll did a good job。

avatar
b*i
22
你的观点是?(就是创始人不同意的那个)
下标从1开始,估计是和matlab, R, 一致,就是和脚本语言一致。你说为啥?

【在 w***g 的大作中提到】
: 老魏你好!
: Lua的本意是嵌入式语言,说白了就是用来给C/C++项目写配置增加灵活性的。
: 如果从"Lua必须配合C/C++使用"这个前提来看,Lua的局限性其实根本就不是问题。
: 不过从Lua的下标从1开始这个事实来看,怕是创始人可能都不同意我这个观点。
: 另一个嵌入式语言python已经彻底做大了,再用来嵌入,反而有包袱。
: 我同意Lua一成不变是个好事。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。