- import tensorflow as tf
- from tensorflow.python.framework import graph_util
复制代码
- mnist = tf.keras.datasets.mnist
- (x_train, y_train), (x_test, y_test) = mnist.load_data()
- x_train, x_test = x_train / 255.0, x_test / 255.0
- model = tf.keras.Sequential([
- tf.keras.layers.Flatten(input_shape=(28, 28), name="input28x28"),
- tf.keras.layers.Dense(512, activation=tf.nn.relu),
- tf.keras.layers.Dropout(0.2),
- tf.keras.layers.Dense(10, activation=tf.nn.softmax, name="output")
- ])
- model.compile(optimizer='adam',
- loss='sparse_categorical_crossentropy',
- metrics=['accuracy'])
复制代码
- model.fit(x_train, y_train, epochs=5) # train
复制代码
- model.save("./mnist.h5")
复制代码
- tf.keras.backend.set_learning_phase(0)
- session = tf.keras.backend.get_session() # 获取Keras的session
- print('input is :', model.input.op.name) # 注意,RKNN传递的input name是这里打印出来的名字
- print('output is:', model.output.op.name) # 注意,RKNN传递的output name是这里打印出来的名字
- graph = session.graph
- with graph.as_default():
- output_names = [model.output.op.name]
- print('output_names:', output_names)
- constant_graph = graph_util.convert_variables_to_constants(session, session.graph_def, output_names) #转换成运算图
- with tf.gfile.GFile('./model.pb', mode='wb') as f:
- f.write(constant_graph.SerializeToString()) # 写pb文件
复制代码
也就是多了几行代码而已,还是非常简单的。- writer = tf.summary.FileWriter('./log', constant_graph)
- writer.close()
复制代码
然后用tensorboard命令来查看:- > tensorboard --logdir=./log
复制代码
就可以看到刚建立的的tensor图了。- # coding=utf-8
- from rknn.api import RKNN
- if __name__ == '__main__':
- # Create RKNN object
- rknn = RKNN(verbose=True)
- # pre-process config
- print('--> config model')
- rknn.config(channel_mean_value='0 0 0 255') # 因为是灰度图,不需要设置reorder_channel进行通道转换
- print('done')
- # Load tensorflow model
- print('--> Loading model')
- ret = rknn.load_tensorflow(
- tf_pb='./model.pb',
- inputs=['input28x28_input'], # 注意,这里的input名字来自于模型转换时候打印出来的mode.input.op.name
- outputs=['output/Softmax'], # 注意,这里的output名字来自于模型转换时候打印出来的mode.output.op.name
- input_size_list=[[28, 28]])
- if ret != 0:
- print('Load mtcnn failed! Ret = {}'.format(ret))
- exit(ret)
- print('done')
- # Build model
- print('--> Building model')
- ret = rknn.build(do_quantization=True, dataset='./dataset.txt') # 量化模型
- if ret != 0:
- print('Build model failed!')
- exit(ret)
- print('done')
- # Export rknn model
- print('--> Export RKNN model')
- ret = rknn.export_rknn('./model.rknn') # 保存成rknn模型文件
- if ret != 0:
- print('Export rknn failed!')
- exit(ret)
- print('done')
- rknn.release()
复制代码
samtu 发表于 2019-5-4 13:41
我想问一下,这个模型的训练也可以在3399PRO上面来做吗,会不会太慢,
jefferyzhang 发表于 2019-5-5 18:05
不能的 ,我们4块titanV跑了一晚上收敛都不是特别理想,在3399上用cpu做那基本不可能。。。 ...
samtu 发表于 2019-5-14 21:06
4块titanV,10万块,利器.,
samtu 发表于 2019-5-14 16:34
楼主,我还有一个问题,为什么要用RKNN来转换呢,难道直接用TENSORFLOW 不行吗,还是转换后才可以用到你 ...
samtu 发表于 2019-5-20 22:31
你们自己训练是从头开始吗,还是拿别人的模型(如VGG,RESNET。。。,拆开,再从FC层后面加分类什么之 类的 ...
jiajia1990 发表于 2019-7-8 17:18
楼主,有没有讲怎么在开发板上安装tensorflow等环境的,看官方的文档讲的太概括了,不明所以。谢谢楼主 ...
jefferyzhang 发表于 2019-7-9 16:09
看wiki,开发版只能安装我们编译好的tensorflow 1.10版本
jefferyzhang 发表于 2019-7-9 16:09
看wiki,开发版只能安装我们编译好的tensorflow 1.10版本
Qmax 发表于 2019-7-9 18:05
tflite的量化模型怎么转?
hisping 发表于 2019-7-26 19:45
wiki上下载的rknn-toolkit就包含了tensorflow-1.10.1-cp36-cp36m-linux_aarch64.whl,可以直接安装啊 ...
jiajia1990 发表于 2019-7-9 22:36
找到了,有个连接需要打开
lyc202019 发表于 2019-7-30 15:44
是在固件下载里面吗?
jiajia1990 发表于 2019-7-9 22:36
找到了,有个连接需要打开
hisping 发表于 2019-7-30 17:09
wiki->人工智能->模型转换 里面有个链接https://eyun.baidu.com/s/3nw94bjV
jefferyzhang 发表于 2019-5-15 10:50
NPU只能读取rknn格式模型,就跟tf只能读取pb格式一样。需要做一次转换。
jiajia1990 发表于 2019-8-15 17:09
楼主你好,我按照这个代码转换为rknn格式的文件后,执行
rknn=RKNN()
rknn.load_rknn("./model.rknn")
jefferyzhang 发表于 2019-8-15 21:08
toolkit版本要统一,建议全部更新到最新来试
jiajia1990 发表于 2019-8-15 21:25
我安装的TensorFlow版本是tensorflow-1.10.1-cp36-cp36m-linux_aarch64.whl,toolkit版本是rknn_toolkit- ...
呱唧 发表于 2020-3-16 10:54
请问一下,有没有用npu跑一些常用模型的性能测试呢?
xinzhiling111 发表于 2020-11-7 23:33
IndexError: list index out of range
E Catch exception when building RKNN model!
jefferyzhang 发表于 2020-11-10 17:46
建议加置顶帖官方RKNN群讨论
jefferyzhang 发表于 2020-11-10 17:46
建议加置顶帖官方RKNN群讨论
xinzhiling111 发表于 2020-11-11 12:44
请问能否提供下dataset.txt以及量化用的图片,我这边量化失败,应该是量化用的图片不对。可以的话,帮忙 ...
jefferyzhang 发表于 2020-11-11 15:12
量化图片是你需要真实场景图片,量化过程就是个下采样过程
李雪梅 发表于 2020-11-24 14:49
依据转换为RKNN模型代码我的会出现如下报错,请楼主赐教:
xml@xml-vm:~/project/rk3399ProD/RK3399Pro入门 ...
hengshutech 发表于 2021-4-21 17:18
您好,请问model.input.op.name 这里报错'list' object has no attribute 'op',请问为什么,我使用的是Fas ...
liuyiyiyiyi 发表于 2021-8-25 10:29
支持pytorch的模型转换为rknn吗
欢迎光临 Toybrick (https://t.rock-chips.com/) | Powered by Discuz! X3.3 |