Giter Site home page Giter Site logo

dv-sdk's Introduction

DV SDK

The SDK is composed by several submodules, this repository controls version of each submodule repositories.

Get repositories

Use the following commands to get all SDK repositories.

$ git clone https://github.com/DigitalMediaProfessionals/dv-sdk --recurse-submodules

Build

All modules in the SDK can be directly built on the distributed Ubuntu environment on the board. If one wants to cross compile on a PC, please edit the env.mk and set the first variable to where the binaries of cross compiler are located.

Wiki

Please see the wiki pages for quick starting guides and user manuals.

dv-sdk's People

Contributors

ajkxyz avatar zonghong-lyu avatar yuyakobayashi avatar yuyakobayashi98889 avatar

Stargazers

Takuya Wakisaka avatar Duong Dang Khoa avatar Yu Kinoshita avatar  avatar Osamu Uno avatar Alexander Montgomerie-Corcoran avatar

Watchers

tomo avatar James Cloos avatar  avatar  avatar  avatar Hiromitsu Katsumata avatar takunny avatar  avatar Osamu Uno avatar

Forkers

indra-ipd

dv-sdk's Issues

Add guide to concatenate last layers in YOLOv3 example !

Dear all,

I work with YOLOv3 example but have issue as follow:

  • I train my on darknet and convert model to .h5 format, then I use dv-sdk to convert .h5 file to .bin file. But the result is not good, I realize YOLOv3 example in dv-sdk compatible with custom model.
    I add concatenate layer to concatenate last layers and everything work well.
    There are source code to add concatenate layer in python language.

add_concatenate_yolo_tiny.zip
add_concatenate_yolo_full.zip

Best regards,
Tinh Lam

Issue with yolo full example

Dear all,

I just modify source code to make it work with yolo full.
I think we miss this point to make it compatible with yolo full in file YOLOv3/YOLOv3_post.cpp
Is it correct ?

oie_S7kb4LW0t5Pz

Best regards,
Tinh Lam

convertor.py can't locate attribute: 'model_config'

I challenged the network conversion using convertor.py.

python convertor.py vae_cnn_mnist.ini
;vae_cnn_mnist.ini
[INPUT]
name = vae_cnn_mnist
definition = vae_cnn_mnist.h5
origin = keras

[OUTPUT]
output_folder = ./
generate_source = 1
generate_doxy 	= 1
generate_dot 	= 1

[OPTIONAL]
verbose = 1
graphviz_path = C:/Program Files (x86)/Graphviz2.38/bin

The following error was obtained.

Traceback (most recent call last):
  File "convertor.py", line 134, in <module>
    custom_layer, dim_override)
  File "C:\Project\dv-sdk\tool\cnn_convertor\cnn_parser.py", line 37, in parse_network
    parser_keras.parse_keras_network(network, network_data)
  File "C:\Project\dv-sdk\tool\cnn_convertor\parser_keras.py", line 600, in parse_keras_network
    netdef = keras_net.attrs['model_config']
  File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "C:\Project\dv-sdk\tool\.venv\lib\site-packages\h5py\_hl\attrs.py", line 60, in __getitem__
    attr = h5a.open(self._id, self._e(name))
  File "h5py\_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
  File "h5py\_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
  File "h5py\h5a.pyx", line 77, in h5py.h5a.open
KeyError: "Can't open attribute (can't locate attribute: 'model_config')"

I confirmed the attribute of the network.

>>> model_ok = h5py.File('test.ini.h5')
>>> model_ng = h5py.File('vae_cnn_mnist.h5')
>>> list(model_ok.attrs.keys())
['backend', 'keras_version', 'model_config']
>>> list(model_ng.attrs.keys())
['backend', 'keras_version', 'layer_names']

Network is Keras's VAE sample.
https://github.com/keras-team/keras/blob/master/examples/variational_autoencoder_deconv.py

Re-factor util library to standalone shared libraries

The util framework is currently included in the common util library under application, but it is better to put that into standalone shared libraries.

Tasks:

  1. Create a new repository and move util library to it.
  2. Divide the util library to two libraries:
    • libdvnet library that contains the FPGA DV network framework
    • libdvutil library that contains I/O processing functions
  3. Update Makefiles in application repository

Pywrap documentation and sample application

The pywrap pull request is merged to the master branch.
But the wiki documentations are not added yet.

Please add one page about how to use the python wrapper. The environment setup page should also be updated to include 'jinja2' module as necessary module.

And I think maybe it is better to add one sample of using the python wrapper and run the network from python on FPGA. Please add one sample based on mobilenet to the 'application' repository.

[Wiki] tell a story how to port thier-own network to DMP FPGA board.

Current wiki explains how to use DV SDK but does not tell a story how to port their-own network from DL frameworks to our DMP FPGA board.

Steps of porting is as below.

  1. train their network with DL framework
  2. export the network
  3. convert the network
  4. setup DV SDK and FPGA board
  5. modify user application to use DV SDK
  6. build the application
  7. run the application

In this step-by-step explanation, we need simple example from the 0-th step.

Allow SDK usage for non-root users

It is not good to require for applications to be executed under root, so I suggest:

  1. Create group dmp.
  2. Change group of /dev/ion /dev/dv_conv /dev/dv_fc to dmp and permissions to 0660.
  3. Add group dmp to ubuntu user.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.