#569 人工智能相关概念整理
AI 机器学习 深度学习 神经网络 2021-07-02我想深入学习一下人工智能。第一步就是需要从总体上了解一下这个领域的相关知识,为后面的自学做个计划。
coding in a complicated world
我想深入学习一下人工智能。第一步就是需要从总体上了解一下这个领域的相关知识,为后面的自学做个计划。
由于想了解一下 OpenResty, 先看看 Lua 的语法。
我的理解是,给 C 项目嵌入 lua 语言支持,然后通过 lua 来实现上层业务逻辑的快速开发,或者系统的灵活拓展。
除了官方 Lua 之外,还有这两个实现:
LuaJIT OpenResty 当前采用的就是这个玩意(之前是标准 Lua) 重点!Lupa Python 模块,实现了对 Lua 脚本的解析sudo apt install -y lua5.4
命令行输入 lua 可以启动一个交互 SHELL。
end;and or
do while for repeat until break
if then else elseif end
true false nil
function return
in
local
goto
nilbooleannumber:1,1.1,1e2string 单引号,双引号,或 [[ + ]]table 数组(和 PHP 类似)userdata C 语言结构function 函数被视为一种数据结构thread-- type 返回字符串
type(a) -- nil
..#,也用于计算数组长度string.upper, string.lower, string.reverse, string.lenstring.formatstring.matchstring.gmatchstring.substring.gsub(mainString, findString, replaceString, num)string.find(str, substr, )string.rep(str, n) 重复string.char(arg), string.byte(arg[,int]) 整形和字符的转换nil 之外的所有值都可以用作索引table.concat(table[, sep[, start[, end]]]) jointable.insert(table[, pos], value)table.remove(table[, pos])table.sort(table[, comp])数字 字符串
nilx = nil,删除数组中的元素也是赋值 nilfunction average(...)
result = 0
local arg = {...}
for i, v in ipairs(arg) do
result = result + v
end
print("总共传入 " .. select("#",...) .. " 个数")
return result / select("#", ...)
end
... 表示可变参数,固定参数需要放到可变参数前面select('#', ...) 可变参数长度select(n, ...) 可变参数切片assert
error(message[, level]) -- 相当于抛出异常
-- level 0, 1, 2 分别表示没有附加信息,错误位置(文件 + 行号),调用函数
pcall(func, ...) -- 调用函数,返回是否有错误(boolean),错误信息
xpcall(func, error_callback, ...) -- 增加了异常处理
这里面有好多内容。
debug.debug -- 进入交互模式
debug.trackback -- 调用栈
a, b = b, a 这种变量交换。----[[ ]]~=,不是常见的 !=,需要注意collectgarbage如何快速的、正确的查询资料是开发者的必备技能。GitHub 是一个主要的资料来源,当然需要掌握其用法才行。
除了要知道搜索什么英语术语之外,还有一些别的辅助技能,可以有效的提升 GitHub 搜索效率。
国外网站上的一篇文章,讲高级工程师应该掌握哪些编码之外的技能,其中包括帮助别人晋升。
一般安装的软件都可以在开始菜单的 “所有应用” 中看到,选 “固定到开始屏幕” 就行了。
不过,那些 Portable 的绿色软件,如果要放进去怎么弄呢?
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\qq.exe => QQ所有应用 里面出现了新增的那个快捷方式同一个 WiFi 内,笔记本和台式机无法 Ping 通。
虽然觉得可能性非常小,但还是关闭防火墙试了一下,果然没用。
最后在路由器上下工夫,经过两天的试验,发现可能和小米路由器有关系。
如果发现连接不上了,切换一下 WiFi 加密方式,似乎就正常。
也可能是断开重启的功劳。
总之,不知道原因。
除了 CPython 之外的几种比较知名的 Python 实现:
Python 本身的性能现在还很有待提升,但是为什么没有阻碍它的推广呢?
因为 Python 常常被当作是一种胶水语言,它有很好的与 C 互操作性,一直维护与 C 库对接的 API,也就是说很容易可以通过 C 拓展来提升性能。
PyPy 据说能有很大提升Pyston LLVM 编译器架构 + JITPsyco http://psyco.sourceforge.net/ 已经没有维护了,据说只维护到 Python 2.4Pyrex 编译成 C 模块Cython Pyrex 的分支, 更加接近 Python 语法一些Numba https://github.com/numba/numbaNuitka 尝试将 Python 代码编译成 C/C++Parakeet https://github.com/iskandr/parakeet 项目没有维护了Shedskin https://github.com/shedskin/shedskin 现在少有维护了SWIG: C/C++ 写的代码自动绑定到 Python,就是说生成一个 Python 可以调用的 .so 模块pybind11Boost.Python直接开发 CPython 拓展模块(include <Python.h>)也可以,但我不觉得这是一个好办法。
ctypes Python 标准库常用的一个 Python 图表工具。
基于 NumPy 的一个数据分析工具。