Lua快速入门与Torch教程

编程入门 行业动态 更新时间:2024-10-10 15:18:57

Lua快速<a href=https://www.elefans.com/category/jswz/34/1770026.html style=入门与Torch教程"/>

Lua快速入门与Torch教程

  • Lua
      • 变量和控制流
      • 函数表示
      • 哈希表
      • 像类一样的table和继承
        • 模块化
  • Torch
      • Tensor
      • math function
      • Torch的CNN相关的内容
      • 奇异值SVD分解线性系统

Lua

最猛的版本还是在【2】里面,15 Min搞定Lua,因为Lua是一种脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。所以会Perl,Python,Shell的话应该很快上手。

变量和控制流

注释:
单行: –
多行:

--[[
--]]

num = 42 – 所有的数字都是double,整数有52bits来存储。
s = ‘first expression’
s2 = ”second expression of string”
muli_line_strings = [[ass
ssss]]
t = nil – 未定义的t;会有垃圾回收

while 循环:

while num < 50 donum = num + 1
end 

IF语句:

if num > 40 thenprint('Over 40')
elseif s~= 'hello' then io.write('Not over 40\n')
else thisIsGlobal = 5local line = io.read()print('Winter is coming,' .. line)
end         

Undefined Variable will be nil

foo = anUnknownVariable
aBoolValue = false-- only nil and false are falsy
if not aBoolValue thenprint('twas false')
end karlSum = 0
for I = 1, 100 dokarlSum = karlSum + i
endfredSum = 0
for j = 100, 1, -1 dofredSum = fredSum + j
endrepeat print('The way of the future')num = num - 1
until num == 0          

函数表示

function fib(n)if n < 2 thenreturn 1endreturn fib(n-2) + fib(n-1)
end     
-- closures and anonymous functions
function adder(x)return function(y) return x + y
end 
a1 = adder(9)
a2 = adder(36)
print(a1(16)) -- >25
print(a2(64)) --> 100x, y, z = 1,2,3,4  -- 4 被扔掉
function bar(a,b,c)print(a,b,c)return 4,8,15,16,23,42
end
x,y = bar('zaphod')  -- print 'zaphod' nil nil
-- x = 4
-- y = 8-- global function.
function f(x) return x*x
end 
f = function (x) return x*x end  -- local function
local function g(x) return math.sin(x)
end 
local g;
g = function(x)return math.sin(x)
end     

哈希表

t = {key1 = 'value1', key2 = false}
print(t.key1)
t.newkey = {}
t.key2 = nil -- remove key2 from the table.u = {['@!#'] = 'qbert', [{}] = 1729, [6.28] = 'tau'}  
-- use any value as key
print(u[6.28])a = u['@!#']
b = u[{}] -- b = nil since lookup fails.function h(x) print(x.key1) end
h{key1 = 'Sonmi~451'}  -- Prints 'Sonmi~451'for key, val in pairs(u) do -- table iterationprint(key, val)
end print(_G['_G'] == _G) -- Print 'true'v = {'value1', 'value2', 1.21, 'gigawatts'}
for i = 1, #v doprint(v[i])
endf1 = {a = 1, b = 2}  -- f1 = 0.5
f2 = {a = 2, b = 3}  -- fail: s = f1 + f2metafraction = {}
function metafraction.__add(f1, f2)sum = {}sum.b = f1.b * f2.bsum.a = f1.a * f2.b + f2.a * f1.breturn sum
endsetmetatable(f1, metafraction)
setmetatable(f2, metafraction)s = f1 + f2  -- call __add(f1, f2) on f1's metatable     
defaultFavs = {animal = 'gru', food = 'donuts'}
myFavs = {food = 'piazza'}
setmetatable(myFavs, {__index = defaultFavs})
eatenBy = myFavs.animal-- __add(a, b)                     for a + b
-- __sub(a, b)                     for a - b
-- __mul(a, b)                     for a * b
-- __div(a, b)                     for a / b
-- __mod(a, b)                     for a % b
-- __pow(a, b)                     for a ^ b
-- __unm(a)                        for -a
-- __concat(a, b)                  for a .. b
-- __len(a)                        for #a
-- __eq(a, b)                      for a == b
-- __lt(a, b)                      for a < b
-- __le(a, b)                      for a <= b
-- __index(a, b)  <fn or a table>  for a.b
-- __newindex(a, b, c)             for a.b = c
-- __call(a, ...)                  for a(...)

像类一样的table和继承

Dog = {}
function Dog:new()newObj = {sound  =  'woof'}self.__index = selfreturn setmetatable(newObj, self)
endfunction Dog:makeSound()print('I say' .. self.sound)
endmrDog = Dog:new()
mrDog:makeSound() -- 'Print I say woof' 
-- mrDog.makeSound(self)-- 这里的Dog看起来像一个类,实际上是一个table,

继承:继承了所有的变量和函数

LoudDog = Dog:

更多推荐

Lua快速入门与Torch教程

本文发布于:2024-02-07 09:02:24,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755869.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:入门   快速   教程   Lua   Torch

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!