[TOC]
Abstract
仓库地址:
时间记录
0331
- 在responseClient方法中
2.read image from client
原代码中是只检查输入图像文件。逻辑如下:- 如果有则给客户端发送1,默认输出图像存在并输出。
- 这种流程有点奇怪。改为:
- 检查输入图像文件,如果有则给客户端发送1,停止客户端的输入图像传送;
- 如果没有则发给客户端发送0,表示正常流程,继续传送。
- 接着检查输出文件,如果有则直接发送给客户端。
- 如果没有则继续处理,并发送结果给客户端。
0401
- 需要确认从安卓端发来的到底是什么格式的。目前默认go的[]byte格式都是自动编码
细节问题
- Defer的使用规范
- [错误示范]Go基于TCP协议的文件传输
- Go基于socket的文件传输实际上不能参考网络blog!全是错的。以↑为例就是错的
- 请看github.com/kyokoning/go_server/server中的写法
- go-simplejson的文档简单索引
- Goland的调试功能
- 使用Goland
- 安装go调试工具dlv
go get github.com/go-delve/delve/cmd/dlv
- 在服务器
{server_project}/cmd
输入``dlv debug –headless –listen=:6464 –api-version=2` - goland的configuration:go remote里面设置host和port,运行即可
- 私有库无法使用sublime merge的问题
如何使用GO运行Pytorch的模型
- Pytorch生成ONNX
- 在Linux上装GO
- 装GO版TensorFlow
- 先安装C版TensorFlow: 官方文档
- 不要用官方文档里的库,由于我们使用的Go版TF的fork版本对应问题(TF-2.3.1和c版2.4.0不能对应),我们下载fork repository里面列出的matching libs的C library(2.3.1)
- 又因为该C library需要cuda10.1,又去下了个cuda10.1,只下载toolkit其它不用安装。
- GO版TensorFlow只支持把C版TF安装在/usr/local中。
- (下面都是因为没有把GOtensorflow安装在/usr/local导致的问题,不用看了)下面的不用看了 离谱。记得把/usr/local/lib更新到LD_LIBRARY_PATH和LIBRARY_PATH变量中
- 官方文档中已经给出找到库文件的方法:配置LD_LIBRARY_PATH和LIBRARY_PATH变量。
- 在测试C版TensorFlow时,会出现
fatal error: tensorflow/c/c_api.h: No such file or directory
。这个问题是因为gcc没有办法找到c版TensorFlow的头文件。 - 参考[linux下gcc默认搜索头文件及库文件的路径](https://www.cnblogs.com/youxin/p/5357614.html),在服务器上把解压得到的include文件夹加入C_INCLUDE_PATH变量
- 成功安装
- 安装GO版TF
- 你妈的 官方文档就是傻逼
- 用go.mod的replace方法,把官方的包替换成别人fock的包,然后用go mod tidy自己安装
- 参考该问题下@mrene的回复
- 自动安装好之后还是没有办法用官方案例,说是
could not determine kind of name of C.TF_StringDecode/C.TF_StringEncode/C.TF_StringEncodeSize
。我相信这是因为版本更新……
- 先安装C版TensorFlow: 官方文档