First implementation
This commit is contained in:
96
vendor/github.com/mattn/go-tflite/README.md
generated
vendored
Normal file
96
vendor/github.com/mattn/go-tflite/README.md
generated
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
# go-tflite
|
||||
|
||||
Go binding for TensorFlow Lite
|
||||
|
||||

|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
model := tflite.NewModelFromFile("sin_model.tflite")
|
||||
if model == nil {
|
||||
log.Fatal("cannot load model")
|
||||
}
|
||||
defer model.Delete()
|
||||
|
||||
options := tflite.NewInterpreterOptions()
|
||||
defer options.Delete()
|
||||
|
||||
interpreter := tflite.NewInterpreter(model, options)
|
||||
defer interpreter.Delete()
|
||||
|
||||
interpreter.AllocateTensors()
|
||||
|
||||
v := float64(1.2) * math.Pi / 180.0
|
||||
input := interpreter.GetInputTensor(0)
|
||||
input.Float32s()[0] = float32(v)
|
||||
interpreter.Invoke()
|
||||
got := float64(interpreter.GetOutputTensor(0).Float32s()[0])
|
||||
```
|
||||
|
||||
See `_example` for more examples
|
||||
|
||||
## Requirements
|
||||
|
||||
* TensorFlow Lite - This release requires 2.2.0-rc3
|
||||
|
||||
## Tensorflow Installation
|
||||
|
||||
You must install Tensorflow Lite C API. Assuming the source is under /source/directory/tensorflow
|
||||
|
||||
```
|
||||
$ cd /source/directory/tensorflow
|
||||
$ bazel build --config opt --config monolithic tensorflow:libtensorflow_c.so
|
||||
```
|
||||
|
||||
Or to just compile the tensorflow lite libraries:
|
||||
```
|
||||
$ cd /some/path/tensorflow
|
||||
$ bazel build --config opt --config monolithic //tensorflow/lite:libtensorflowlite.so
|
||||
$ bazel build --config opt --config monolithic //tensorflow/lite/c:libtensorflowlite_c.so
|
||||
```
|
||||
|
||||
In order for go to find the headers you must set the CGO_CFLAGS environment variable for the source and libraries of tensorflow.
|
||||
If your libraries are not installed in a standard location, you must also give the go linker the path to the shared librares
|
||||
with the CGO_LDFLAGS environment variable.
|
||||
|
||||
```
|
||||
$ export CGO_CFLAGS=-I/source/directory/tensorflow
|
||||
$ export CGO_LDFLAGS=-L/path/to/tensorflow/libaries
|
||||
```
|
||||
|
||||
If you don't love bazel, you can try `Makefile.tflite`.
|
||||
Put this file as `Makefile` in `tensorflow/lite/c`, and run `make`.
|
||||
Sorry, this has not been test for Linux or Mac
|
||||
|
||||
Then run `go build` on some of the examples.
|
||||
|
||||
## Edge TPU
|
||||
To be able to compile and use the EdgeTPU delegate, you need to install the libraries from here:
|
||||
https://github.com/google-coral/edgetpu
|
||||
|
||||
There is also a deb package here:
|
||||
https://coral.withgoogle.com/docs/accelerator/get-started/#1-install-the-edge-tpu-runtime
|
||||
|
||||
The libraries from should be installed in a system wide library path like `/usr/local/lib`
|
||||
The include files should be installed somewhere that is accesable from your CGO include path
|
||||
|
||||
For x86:
|
||||
```
|
||||
cd /tmp && git clone https://github.com/google-coral/edgetpu.git && \
|
||||
cp edgetpu/libedgetpu/direct/k8/libedgetpu.so.1.0 /usr/local/lib/libedgetpu.so.1.0 && \
|
||||
ln -rs /usr/local/lib/libedgetpu.so.1.0 /usr/local/lib/libedgetpu.so.1 && \
|
||||
ln -rs /usr/local/lib/libedgetpu.so.1.0 /usr/local/lib/libedgetpu.so && \
|
||||
mkdir -p /usr/local/include/libedgetpu && \
|
||||
cp edgetpu/libedgetpu/edgetpu.h /usr/local/include/edgetpu.h && \
|
||||
cp edgetpu/libedgetpu/edgetpu_c.h /usr/local/include/edgetpu_c.h && \
|
||||
rm -Rf edgetpu
|
||||
```
|
||||
|
||||
|
||||
## License
|
||||
MIT
|
||||
|
||||
## Author
|
||||
Yasuhrio Matsumoto (a.k.a. mattn)
|
||||
|
||||
Reference in New Issue
Block a user