void MKLDNNBatchNormLayer::reshape( int& bs, int& ic, int& ih, int& iw, int& oc, int& oh, int& ow) { reshapeInput(bs, ih, iw); oh = ih; ow = iw; // ic_ and oc can not be changed CHECK_EQ((size_t)ic, inputLayers_[0]->getOutputValue()->getElementCnt() / bs / ih / iw) << "Input channel can not be changed"; reshapeOutput(oh, ow); resizeOutput(bs, oc * oh * ow); }
static int GL_resize(struct DriverInstance* sh, int width, int height, char* error_text, int text_len) { if (sh->win_xsize != width || sh->win_ysize != height) { sh->win_xsize = width; sh->win_ysize = height; glViewport(0, 0, sh->win_xsize, sh->win_ysize); resizeOutput(sh->win_xsize,sh->win_ysize); } return 1; }
void MKLDNNConvLayer::reshape( int& bs, int& ic, int& ih, int& iw, int& oc, int& oh, int& ow) { reshapeInput(bs, ih, iw); // cal output sizes // oc can not be changed int fh = (fh_ - 1) * dh_ + 1; int fw = (fw_ - 1) * dw_ + 1; oh = outputSize(ih, fh, ph_, sh_, caffeMode_); ow = outputSize(iw, fw, pw_, sw_, caffeMode_); reshapeOutput(oh, ow); resizeOutput(bs, oc * oh * ow); }
void MKLDNNPoolLayer::reshape( int& bs, int& ic, int& ih, int& iw, int& oc, int& oh, int& ow) { reshapeInput(bs, ih, iw); // ic_ and oc can not be changed CHECK_EQ((size_t)ic, inputLayers_[0]->getOutputValue()->getElementCnt() / bs / ih / iw) << "Input channel can not be changed"; // cal output sizes // paddle used false caffeMode for pooling oh = outputSize(ih, fh_, ph_, sh_, false); ow = outputSize(iw, fw_, pw_, sw_, false); reshapeOutput(oh, ow); resizeOutput(bs, oc * oh * ow); }
void MKLDNNAddtoLayer::reshape( int& bs, int& ic, int& ih, int& iw, int& oc, int& oh, int& ow) { CHECK_EQ(layerSize_, getSize()) << "this layer size can not be changed"; reshapeInput(bs, ih, iw); ic = inputLayers_[0]->getSize() / ih / iw; CHECK_EQ((size_t)ic * ih * iw, inputLayers_[0]->getSize()); CHECK_EQ(inputLayers_[0]->getOutputValue()->getElementCnt(), (size_t)bs * ic * ih * iw); for (size_t i = 0; i < inputLayers_.size(); i++) { CHECK_EQ(int64_t(bs), inputLayers_[i]->getOutput().getBatchSize()); CHECK_EQ(layerSize_, inputLayers_[i]->getSize()); } oc = ic; oh = ih; ow = iw; reshapeOutput(oh, ow); resizeOutput(bs, oc * oh * ow); }