-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Conversation
I've realized that extending to 5D support was almost trivial, so i've added that as well |
out_data[pad_enum::kOut].get<xpu, 5, DType>(s); | ||
pad_image(out, data, param_.pad_width, param_.mode, constant_value); | ||
break; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you should add a LOG(FATAL) if none of the cases are matched. Do the same with backward.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is checked in InferShape though, so it would be redundant. One of them will always match. Should I add it anyway?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think its good practice. If there is a bug in infershape, this would help immediately catch it.
src/operator/pad-inl.h
Outdated
if ((rank != 4) && (rank != 5)) { | ||
LOG(FATAL) << "Current implementation only supports 4-D or 5-D input."; | ||
} | ||
if (pad[0] || pad[1] || pad[2] || pad[3]) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you make this explicit, so pad[0] == 0
etc? I know this is more compact, but its also less readable. Also: shouldn't this only check that pad[0] == 0
and pad[1] == 0
? Surely pad[2]
can be non-zero?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is from the previous design, nothing has changed. pad[0-1] -> batch dimension, pad[2-3] -> channel dimension
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies, my mistake. I still prefer explicit pad[0] != 0
} | ||
if (param_.mode == pad_enum::kReflect) { | ||
auto size = dshape.data(); | ||
if ((pad[4] >= size[2]) || (pad[5] >= size[2]) || |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does the equality case not work? Surely the difficultly only comes when the padding size is strictly greater than the input size?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, it starts when equal. Suppose you want to pad (a, b, c)
on the right with padding size 2, you would get (a, b, c, b, a)
. So padding size 3 is the point at which you have to bounce off the edge, getting (a, b, c, b, a, b)
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh ok, I somehow thought that (a, b, c)
-> (a, b, c, c, b)
. If that is what numpy does, we definitely need to follow that convention.
@sbodenstein Is this good to merge? |
Yes, it is ready. |
* Added reflection padding * Lint fix * Added 5d reflection padding * Added failure in forward/backward for input dimensions other than 4 of 5 * Improved sanity check readability
* Added reflection padding * Lint fix * Added 5d reflection padding * Added failure in forward/backward for input dimensions other than 4 of 5 * Improved sanity check readability
* updated docstring for set_lr_mult and set_wd_mult * updated docstring per review * Fixed imdecode crash bug when flag=0 (#6134) * Fix (#6131) * Docs for MXRecordIO, MXIndexedRecordIO modified (#6013) * docs for MXIndexedRecordIO modified * changes after review * recordIO doc modified * changes after review * lint error * minor change * minor change after review * empty commit to retrigger build * changes after review * Update documentation for mx.callback.Speedometer. (#6058) * Update documentation for mx.callback.Speedometer. * Minor doc changes. * Use module instead of model in example code. * update doc for Load (#6092) * Installation instructions for MacOS and Cloud (#6012) * Fix NDArray bool checking (#6130) * fix shape order bug (#6136) * TOC click unfold (#6133) * [doc] new sphnix plugin (#6105) * update doc * rm * update * update ndarray * update mds * update * update * update * update * update * update * update image.md and others * update * [doc] use debug mode to build (#6151) * move ctc loss to contrib (#6154) * Fix for invalid numpy float indexing (#6144) * Fix python3 compatibilities (#6143) * [doc] small changes to tutorials (#6164) * [doc] Fix left toc link (#6162) * [example]ADD practical functions and options for speech_recognition example (#6141) * ADD practical functions and options for speech_recognition example * add missing stt_bi_graphemes_util.py and deepspeech.cfg template * Added reflection padding (#6123) * Added reflection padding * Lint fix * Added 5d reflection padding * Added failure in forward/backward for input dimensions other than 4 of 5 * Improved sanity check readability * Fixing LICENSE file and adding NOTICE (#6172) * Creating NOTICE. When code moves to Apache, it will need adjusting to the Apache format. * Replacing source header with full license text * doc improvement - softmax, metrics, and initializer (#5945) * doc improvement, softmaxoutput, initializer-constant, minor fixes * doc improvement, metrics * fix softmax doc, fix metric lint * softmax more fixes * add doc change in initializer.py. some minor fix in softmax_cross_entropy * doc change in initializer.py * fix grammer * fix * fix * fix * minor fix * fix * minor fix * DataBatch and NDArrayIter doc modified (#6091) * DataBatch and NDArrayIter doc modified * fixes after review * fixes after review * wording changed * some more fixes * improvement * desc fix * Datadesc info added * minor addition * fix * fix * fix after review * [Scala] Change version to 0.9.5-SNAPSHOT (#6173) * [scala] change version to 0.9.5-SNAPSHOT * API doc improvement Dropout and SoftmaxActivation (#6088) * doc improve for dropout oper * doc improve for SoftmaxActivation oper * fix * fix * Update documentation for mx.callback.do_checkpoint (#6059) * Update documentation for mx.callback.do_checkpoint * Use module instead of model for example code. * Update documentation for plot_graph. (#6098) * Update documentation for plot_graph. * Minor doc fix. * Restruct get started (#6167) * Change get started page * Small fix * Improve * Update documentation of Initializer.dumps() (#6128) * Doc Improvement - RMSProp and RMSPropAlex (#6107) * rmsprop * rmsprop alex * add link in optimizer.py * fix * fix * missed fix.. * Docforcs,fft,ifft (#6145) * fft.cc * add all * changed the description of set_lr_mult and set_wd_mult * Explicitly specify quiet in R install_version (#6171)
* Added reflection padding * Lint fix * Added 5d reflection padding * Added failure in forward/backward for input dimensions other than 4 of 5 * Improved sanity check readability
* updated docstring for set_lr_mult and set_wd_mult * updated docstring per review * Fixed imdecode crash bug when flag=0 (apache#6134) * Fix (apache#6131) * Docs for MXRecordIO, MXIndexedRecordIO modified (apache#6013) * docs for MXIndexedRecordIO modified * changes after review * recordIO doc modified * changes after review * lint error * minor change * minor change after review * empty commit to retrigger build * changes after review * Update documentation for mx.callback.Speedometer. (apache#6058) * Update documentation for mx.callback.Speedometer. * Minor doc changes. * Use module instead of model in example code. * update doc for Load (apache#6092) * Installation instructions for MacOS and Cloud (apache#6012) * Fix NDArray bool checking (apache#6130) * fix shape order bug (apache#6136) * TOC click unfold (apache#6133) * [doc] new sphnix plugin (apache#6105) * update doc * rm * update * update ndarray * update mds * update * update * update * update * update * update * update image.md and others * update * [doc] use debug mode to build (apache#6151) * move ctc loss to contrib (apache#6154) * Fix for invalid numpy float indexing (apache#6144) * Fix python3 compatibilities (apache#6143) * [doc] small changes to tutorials (apache#6164) * [doc] Fix left toc link (apache#6162) * [example]ADD practical functions and options for speech_recognition example (apache#6141) * ADD practical functions and options for speech_recognition example * add missing stt_bi_graphemes_util.py and deepspeech.cfg template * Added reflection padding (apache#6123) * Added reflection padding * Lint fix * Added 5d reflection padding * Added failure in forward/backward for input dimensions other than 4 of 5 * Improved sanity check readability * Fixing LICENSE file and adding NOTICE (apache#6172) * Creating NOTICE. When code moves to Apache, it will need adjusting to the Apache format. * Replacing source header with full license text * doc improvement - softmax, metrics, and initializer (apache#5945) * doc improvement, softmaxoutput, initializer-constant, minor fixes * doc improvement, metrics * fix softmax doc, fix metric lint * softmax more fixes * add doc change in initializer.py. some minor fix in softmax_cross_entropy * doc change in initializer.py * fix grammer * fix * fix * fix * minor fix * fix * minor fix * DataBatch and NDArrayIter doc modified (apache#6091) * DataBatch and NDArrayIter doc modified * fixes after review * fixes after review * wording changed * some more fixes * improvement * desc fix * Datadesc info added * minor addition * fix * fix * fix after review * [Scala] Change version to 0.9.5-SNAPSHOT (apache#6173) * [scala] change version to 0.9.5-SNAPSHOT * API doc improvement Dropout and SoftmaxActivation (apache#6088) * doc improve for dropout oper * doc improve for SoftmaxActivation oper * fix * fix * Update documentation for mx.callback.do_checkpoint (apache#6059) * Update documentation for mx.callback.do_checkpoint * Use module instead of model for example code. * Update documentation for plot_graph. (apache#6098) * Update documentation for plot_graph. * Minor doc fix. * Restruct get started (apache#6167) * Change get started page * Small fix * Improve * Update documentation of Initializer.dumps() (apache#6128) * Doc Improvement - RMSProp and RMSPropAlex (apache#6107) * rmsprop * rmsprop alex * add link in optimizer.py * fix * fix * missed fix.. * Docforcs,fft,ifft (apache#6145) * fft.cc * add all * changed the description of set_lr_mult and set_wd_mult * Explicitly specify quiet in R install_version (apache#6171)
* Added reflection padding * Lint fix * Added 5d reflection padding * Added failure in forward/backward for input dimensions other than 4 of 5 * Improved sanity check readability
* updated docstring for set_lr_mult and set_wd_mult * updated docstring per review * Fixed imdecode crash bug when flag=0 (apache#6134) * Fix (apache#6131) * Docs for MXRecordIO, MXIndexedRecordIO modified (apache#6013) * docs for MXIndexedRecordIO modified * changes after review * recordIO doc modified * changes after review * lint error * minor change * minor change after review * empty commit to retrigger build * changes after review * Update documentation for mx.callback.Speedometer. (apache#6058) * Update documentation for mx.callback.Speedometer. * Minor doc changes. * Use module instead of model in example code. * update doc for Load (apache#6092) * Installation instructions for MacOS and Cloud (apache#6012) * Fix NDArray bool checking (apache#6130) * fix shape order bug (apache#6136) * TOC click unfold (apache#6133) * [doc] new sphnix plugin (apache#6105) * update doc * rm * update * update ndarray * update mds * update * update * update * update * update * update * update image.md and others * update * [doc] use debug mode to build (apache#6151) * move ctc loss to contrib (apache#6154) * Fix for invalid numpy float indexing (apache#6144) * Fix python3 compatibilities (apache#6143) * [doc] small changes to tutorials (apache#6164) * [doc] Fix left toc link (apache#6162) * [example]ADD practical functions and options for speech_recognition example (apache#6141) * ADD practical functions and options for speech_recognition example * add missing stt_bi_graphemes_util.py and deepspeech.cfg template * Added reflection padding (apache#6123) * Added reflection padding * Lint fix * Added 5d reflection padding * Added failure in forward/backward for input dimensions other than 4 of 5 * Improved sanity check readability * Fixing LICENSE file and adding NOTICE (apache#6172) * Creating NOTICE. When code moves to Apache, it will need adjusting to the Apache format. * Replacing source header with full license text * doc improvement - softmax, metrics, and initializer (apache#5945) * doc improvement, softmaxoutput, initializer-constant, minor fixes * doc improvement, metrics * fix softmax doc, fix metric lint * softmax more fixes * add doc change in initializer.py. some minor fix in softmax_cross_entropy * doc change in initializer.py * fix grammer * fix * fix * fix * minor fix * fix * minor fix * DataBatch and NDArrayIter doc modified (apache#6091) * DataBatch and NDArrayIter doc modified * fixes after review * fixes after review * wording changed * some more fixes * improvement * desc fix * Datadesc info added * minor addition * fix * fix * fix after review * [Scala] Change version to 0.9.5-SNAPSHOT (apache#6173) * [scala] change version to 0.9.5-SNAPSHOT * API doc improvement Dropout and SoftmaxActivation (apache#6088) * doc improve for dropout oper * doc improve for SoftmaxActivation oper * fix * fix * Update documentation for mx.callback.do_checkpoint (apache#6059) * Update documentation for mx.callback.do_checkpoint * Use module instead of model for example code. * Update documentation for plot_graph. (apache#6098) * Update documentation for plot_graph. * Minor doc fix. * Restruct get started (apache#6167) * Change get started page * Small fix * Improve * Update documentation of Initializer.dumps() (apache#6128) * Doc Improvement - RMSProp and RMSPropAlex (apache#6107) * rmsprop * rmsprop alex * add link in optimizer.py * fix * fix * missed fix.. * Docforcs,fft,ifft (apache#6145) * fft.cc * add all * changed the description of set_lr_mult and set_wd_mult * Explicitly specify quiet in R install_version (apache#6171)
Implemented a reflection padding method, adapted from Torch. Currently has two limitations compared to edge and constant padding
Also improved sanity checks and moved them from forward/backward to InferShape.