如何处理 torch7 中的 HEX?
how to tackle HEX in torch7?
我正在使用 async-tcp client 连接到服务器并接收数据(数组)。
client.ondata(function(data)
print('received:',data)
end)
如果数据类型是 HEX,我可以得到数据,但都是乱码。
编码好像有问题
如果数据类型是note HEX,我也可以得到数据,但是是字符串。
我不知道如何将 'array string' 转换为张量。
'0.001 0.002 0.003' -> torch.Tensor({{0.001, 0.002, 0.003}})
??
我该怎么办?
谢谢
============================================= =====
编辑
string.byte
client.ondata(function(data)
print('received number:',#data)
for i = 1, #data do
print('received:', string.byte(data, i))
end
end)
如果你提前知道格式,你可以使用 match
函数从字符串中获取值列表,然后你可以将其转换为 table 和张量:
local str = "0.001 0.002 0.003"
torch.Tensor({{str:match("(%d+%.%d*)%s+(%d+%.%d*)%s+(%d+%.%d*)")}})
这个returns:
0.001 *
1.0000 2.0000 3.0000
[torch.DoubleTensor of size 1x3]
如果数字是十六进制格式,可以使用tonumber
函数进行转换,例如tonumber("0x12") == 18
.
我正在使用 async-tcp client 连接到服务器并接收数据(数组)。
client.ondata(function(data)
print('received:',data)
end)
如果数据类型是 HEX,我可以得到数据,但都是乱码。
编码好像有问题
如果数据类型是note HEX,我也可以得到数据,但是是字符串。
我不知道如何将 'array string' 转换为张量。
'0.001 0.002 0.003' -> torch.Tensor({{0.001, 0.002, 0.003}})
??
我该怎么办?
谢谢
============================================= =====
编辑
string.byte
client.ondata(function(data)
print('received number:',#data)
for i = 1, #data do
print('received:', string.byte(data, i))
end
end)
如果你提前知道格式,你可以使用 match
函数从字符串中获取值列表,然后你可以将其转换为 table 和张量:
local str = "0.001 0.002 0.003"
torch.Tensor({{str:match("(%d+%.%d*)%s+(%d+%.%d*)%s+(%d+%.%d*)")}})
这个returns:
0.001 *
1.0000 2.0000 3.0000
[torch.DoubleTensor of size 1x3]
如果数字是十六进制格式,可以使用tonumber
函数进行转换,例如tonumber("0x12") == 18
.