> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of Guo, > Yejun > Sent: Thursday, July 30, 2020 10:02 AM > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH V2 1/2] dnn/native: add native support for > avg_pool > > > > > -----Original Message----- > > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of Fu, > > Ting > > Sent: 2020年7月30日 9:43 > > To: FFmpeg development discussions and patches > > <ffmpeg-devel@ffmpeg.org> > > Subject: Re: [FFmpeg-devel] [PATCH V2 1/2] dnn/native: add native > > support for avg_pool > > > > > > > > > -----Original Message----- > > > From: ffmpeg-devel <ffmpeg-devel-boun...@ffmpeg.org> On Behalf Of > > > Ting Fu > > > Sent: Wednesday, July 29, 2020 10:11 PM > > > To: ffmpeg-devel@ffmpeg.org > > > Subject: [FFmpeg-devel] [PATCH V2 1/2] dnn/native: add native > > > support for avg_pool > > > > > > Not support pooling strides in channel dimension now. > > > It can be tested with the model generated with below python script: > > > > > > import tensorflow as tf > > > import numpy as np > > > import imageio > > > > > > in_img = imageio.imread('input_odd.jpg') in_img = > > > in_img.astype(np.float32)/255.0 in_data = in_img[np.newaxis, :] > > > > > > x = tf.placeholder(tf.float32, shape=[1, None, None, 3], > > > name='dnn_in') x_pool = tf.nn.avg_pool(x, ksize=[1,2,2,1], > > > strides=[1,2,2,1], padding='SAME') #please alter the params as > > > needed y = tf.identity(x_pool, name='dnn_out') > > > > > > sess=tf.Session() > > > sess.run(tf.global_variables_initializer()) > > > > > > graph_def = tf.graph_util.convert_variables_to_constants(sess, > > > sess.graph_def, > > > ['dnn_out']) tf.train.write_graph(graph_def, '.', > > > 'image_process.pb', > > > as_text=False) > > > > > > print("image_process.pb generated, please use \ > > > path_to_ffmpeg/tools/python/convert.py to generate > > > image_process.model\n") > > > > > > output = sess.run(y, feed_dict={x: in_data}) > > > imageio.imsave("out.jpg", > > > np.squeeze(output)) > > > > > > Signed-off-by: Ting Fu <ting...@intel.com> > > > --- > > > libavfilter/dnn/Makefile | 1 + > > > libavfilter/dnn/dnn_backend_native.h | 2 + > > > .../dnn/dnn_backend_native_layer_avgpool.c | 147 > > ++++++++++++++++++ > > > .../dnn/dnn_backend_native_layer_avgpool.h | 35 +++++ > > > .../dnn/dnn_backend_native_layer_conv2d.h | 3 +- > > > libavfilter/dnn/dnn_backend_native_layers.c | 2 + > > > tools/python/convert_from_tensorflow.py | 35 ++++- > > > 7 files changed, 222 insertions(+), 3 deletions(-) create mode > > > 100644 libavfilter/dnn/dnn_backend_native_layer_avgpool.c > > > create mode 100644 > > > libavfilter/dnn/dnn_backend_native_layer_avgpool.h > > > > > > diff --git a/libavfilter/dnn/Makefile b/libavfilter/dnn/Makefile > > > index d90137ec42..e0957073ee 100644 > > > --- a/libavfilter/dnn/Makefile > > > +++ b/libavfilter/dnn/Makefile > > > @@ -1,6 +1,7 @@ > > > OBJS-$(CONFIG_DNN) += > > dnn/dnn_interface.o > > > OBJS-$(CONFIG_DNN) += > > dnn/dnn_backend_native.o > > > OBJS-$(CONFIG_DNN) += > > dnn/dnn_backend_native_layers.o > > > +OBJS-$(CONFIG_DNN) += > > > dnn/dnn_backend_native_layer_avgpool.o > > > OBJS-$(CONFIG_DNN) += > > dnn/dnn_backend_native_layer_pad.o > > > OBJS-$(CONFIG_DNN) += > > > dnn/dnn_backend_native_layer_conv2d.o > > > OBJS-$(CONFIG_DNN) += > > > dnn/dnn_backend_native_layer_depth2space.o > > [...] > > > > > > > > > + def dump_avg_pool_to_file(self, node, f): > > > + assert(node.op == 'AvgPool') > > > + self.layer_number = self.layer_number + 1 > > > + self.converted_nodes.add(node.name) > > > + node0 = self.name_node_dict[node.input[0]] > > > + strides = node.attr['strides'] > > > + assert(strides.list.i[1]==strides.list.i[2]) > > > + assert(strides.list.i[0]==1) > > > + assert(strides.list.i[3]==1) > > > > Since the tensorflow do not support pooling strides in batch > > dimension, and current do not support pooling in channel dimension, added > two assert here. > > thanks, and please add the comments within the code.
Thank you Yejun, if no further comments, this would be the only difference in patch V3. > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org > with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".