我是靠谱客的博主 无限月饼,最近开发中收集的这篇文章主要介绍【mindspore框架】【nn.ResizeBilinear()】能否在构建网络时指定size或者scale_factor?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

问题描述:

【功能模块】

class ResizeBilinear(Cell):

def __init__(self,):

    """Initialize ResizeBilinear."""

    super(ResizeBilinear, self).__init__()

def construct(self, x, size=None, scale_factor=None, align_corners=False):

    shape = bilinear(x.shape, size, scale_factor, align_corners, self.cls_name)

    resize_bilinear = P.ResizeBilinear(shape, align_corners)

    return resize_bilinear(x)

【操作步骤&问题现象】

1、构建网络时想指定size或者factor,但是发现只能在前向计算时才能指定参数,

【截图信息】

如果改成这样,是不是能行得通?

def __init__(self, size=None, scale_factor=None, align_corners=False):

    """Initialize ResizeBilinear."""

    super(ResizeBilinear, self).__init__()

    self.size = size

    self.scale_factor = scale_factor

    self.align_corners = align_corners

解答:

你可以采用如下方式调用:

from mindspore.ops import ResizeBilinear

__init__

self.resizebilinear = ResizeBilinear(参数化)

construct

x = self.resizebilinear(x)

中间还可能需要下面这个函数来做一些初始化工作

from mindspore.nn.layer.basic import bilinear

其实您的需求可以理解为,您期望在construct中使用,而且ResizeBilinear在网络中按照传入的shape动态resize,mindspore目前暂时不支持这个功能,这个主要的限制是动态shape的支持,动态shape可以理解为网络训练过程中,由于某些层的网络输入输出shape不固定,导致整个网络训练时需要编译多次图,您想要的这种功能,一定会出现动态shape,目前mindspore对动态shape的支持有限,您的这种场景目前还不支持,后续动态shape支持完善之后,才能支持。

最后

以上就是无限月饼为你收集整理的【mindspore框架】【nn.ResizeBilinear()】能否在构建网络时指定size或者scale_factor?的全部内容,希望文章能够帮你解决【mindspore框架】【nn.ResizeBilinear()】能否在构建网络时指定size或者scale_factor?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部