Release Notes

MindSpore 2.0.0-rc1 Release Notes

主要特性和增强

FrontEnd

  • [BETA] 静态图模式下,函数及类方法支持”return None”、”return”、无”return”语法。

  • [BETA] 静态图模式下,支持返回list类型对象。

  • [BETA] 静态图模式下,变量条件时,支持”raise”语法。

  • [STABLE] 函数式调用支持数据下沉模式。

  • [BETA] nn下新增Transformer层,提供更加易用的Transformer API,无需定义batch_size,支持动态seq_length。

DataSet

  • [STABLE] Ascend环境下,数据下沉模式超时等待时间调整,默认调整到1900s,以解决数据下沉模式时因环境资源竞争、计算量大等因素容易导致GetNext算子等待超时的问题。

  • [STABLE] MindRecord提供Schema、样本数查询接口,并提供多进程并行写入功能,允许用户更快生成MindRecord数据文件。

  • [STABLE] Dataset流水线支持处理任意Python对象,用法参考数据pipeline支持Python对象

AutoParallel

  • [STABLE] 策略保存时支持保存完整策略。

  • [STABLE] 支持Conv3D/MaxPool3D/AvgPool3D分布式算子。

  • [STABLE] 支持PyNative+shard算子级并行+优化器并行:并行表达和Model进行解耦,提供基础的并行表达能力。

  • [STABLE] 支持图模式算子级并行+优化器并行:并行表达和Model进行解耦,提供基础的并行表达能力。

  • [BETA] 支持自定义分布式图切分,提升分布式训练的灵活性。

Runtime

  • [STABLE] 控制流支持子图下沉。

  • [STABLE] 支持CUDA 11.6。

  • [STABLE] 支持List/Tuple/Scalar类型算子的算子选择和执行,配套Python原生表达。

  • [STABLE] 硬件不支持的算子自动选择CPU算子。

  • [STABLE] 支持子图内部异构执行。

Ascend

  • [STABLE] 支持CANN溢出检测新方案和HCCL运行态溢出检测。

  • [STABLE] 支持集合通信算子dump功能。

Profiler

  • [STABLE] 丰富Profiler采集项配置,用户可以更细度地采集性能数据。

Dump

  • [BETA] 单卡PyNatvie模式支持算子溢出检测。

  • [BETA] Graph模式支持hccl算子dump。

API变更

算子

  • [BETA] mindspore.ops.AdaptiveAvgPool3D 新增算子原语。

  • [BETA] mindspore.ops.AffineGrid 新增算子原语。

  • [BETA] mindspore.ops.Angle 新增算子原语。

  • [BETA] mindspore.ops.BartlettWindow 新增算子原语。

  • [BETA] mindspore.ops.Bernoulli 新增算子原语。

  • [BETA] mindspore.ops.BesselI0 新增算子原语。

  • [BETA] mindspore.ops.BesselI1 新增算子原语。

  • [BETA] mindspore.ops.BesselJ0 新增算子原语。

  • [BETA] mindspore.ops.BesselJ1 新增算子原语。

  • [BETA] mindspore.ops.BesselK0 新增算子原语。

  • [BETA] mindspore.ops.BesselK0e 新增算子原语。

  • [BETA] mindspore.ops.BesselK1 新增算子原语。

  • [BETA] mindspore.ops.BesselK1e 新增算子原语。

  • [BETA] mindspore.ops.BesselY0 新增算子原语。

  • [BETA] mindspore.ops.BesselY1 新增算子原语。

  • [BETA] mindspore.ops.Bincount 新增算子原语。

  • [BETA] mindspore.ops.BlackmanWindow 新增算子原语。

  • [BETA] mindspore.ops.ChannelShuffle 新增算子原语。

  • [BETA] mindspore.ops.Cholesky 新增算子原语。

  • [BETA] mindspore.ops.Col2Im 新增算子原语。

  • [BETA] mindspore.ops.Complex 新增算子原语。

  • [BETA] mindspore.ops.ComplexAbs 新增算子原语。

  • [BETA] mindspore.ops.Cross 新增算子原语。

  • [BETA] mindspore.ops.CTCLossV2 新增算子原语。

  • [BETA] mindspore.ops.Cummin 新增算子原语。

  • [BETA] mindspore.ops.Diag 新增算子原语。

  • [BETA] mindspore.ops.Digamma 新增算子原语。

  • [BETA] mindspore.ops.Eig 新增算子原语。

  • [BETA] mindspore.ops.Expand 新增算子原语。

  • [BETA] mindspore.ops.Fmax 新增算子原语。

  • [BETA] mindspore.ops.Gcd 新增算子原语。

  • [BETA] mindspore.ops.Geqrf 新增算子原语。

  • [BETA] mindspore.ops.GLU 新增算子原语。

  • [BETA] mindspore.ops.GridSampler2D 新增算子原语。

  • [BETA] mindspore.ops.GridSampler3D 新增算子原语。

  • [BETA] mindspore.ops.HammingWindow 新增算子原语。

  • [BETA] mindspore.ops.Heaviside 新增算子原语。

  • [BETA] mindspore.ops.Hypot 新增算子原语。

  • [BETA] mindspore.ops.Igamma 新增算子原语。

  • [BETA] mindspore.ops.IndexFill 新增算子原语。

  • [BETA] mindspore.ops.InplaceIndexAdd 新增算子原语。

  • [BETA] mindspore.ops.InplaceUpdateV2 新增算子原语。

  • [BETA] mindspore.ops.Lcm 新增算子原语。

  • [BETA] mindspore.ops.LeftShift 新增算子原语。

  • [BETA] mindspore.ops.LogicalXor 新增算子原语。

  • [BETA] mindspore.ops.Logit 新增算子原语。

  • [BETA] mindspore.ops.LogSpace 新增算子原语。

  • [BETA] mindspore.ops.LuUnpack 新增算子原语。

  • [BETA] mindspore.ops.MatrixDiagPartV3 新增算子原语。

  • [BETA] mindspore.ops.MatrixDiagV3 新增算子原语。

  • [BETA] mindspore.ops.MatrixSetDiagV3 新增算子原语。

  • [BETA] mindspore.ops.MaxPool3DWithArgmax 新增算子原语。

  • [BETA] mindspore.ops.MaxUnpool2D 新增算子原语。

  • [BETA] mindspore.ops.MaxUnpool3D 新增算子原语。

  • [BETA] mindspore.ops.MultiMarginLoss 新增算子原语。

  • [BETA] mindspore.ops.MultinomialWithReplacement 新增算子原语。

  • [BETA] mindspore.ops.Mvlgamma 新增算子原语。

  • [BETA] mindspore.ops.NanToNum 新增算子原语。

  • [BETA] mindspore.ops.NextAfter 新增算子原语。

  • [BETA] mindspore.ops.Orgqr 新增算子原语。

  • [BETA] mindspore.ops.Polygamma 新增算子原语。

  • [BETA] mindspore.ops.Qr 新增算子原语。

  • [BETA] mindspore.ops.ResizeBilinearV2 新增算子原语。

  • [BETA] mindspore.ops.RightShift 新增算子原语。

  • [BETA] mindspore.ops.ScatterNdDiv 新增算子原语。

  • [BETA] mindspore.ops.ScatterNdMul 新增算子原语。

  • [BETA] mindspore.ops.SearchSorted 新增算子原语。

  • [BETA] mindspore.ops.Sinc 新增算子原语。

  • [BETA] mindspore.ops.Trace 新增算子原语。

  • [BETA] mindspore.ops.Tril 新增算子原语。

  • [BETA] mindspore.ops.TrilIndices 新增算子原语。

  • [BETA] mindspore.ops.TriuIndices 新增算子原语。

  • [BETA] mindspore.ops.UniqueConsecutive 新增算子原语。

  • [STABLE] mindspore.ops.Cummax 新增算子原语。

  • [STABLE] mindspore.ops.FillV2 新增算子原语。

  • [STABLE] mindspore.ops.IsClose 新增算子原语。

  • [STABLE] mindspore.ops.MatrixSolve 新增算子原语。

  • [STABLE] mindspore.ops.Median 新增算子原语。

  • [STABLE] mindspore.ops.MultilabelMarginLoss 新增算子原语。

  • [STABLE] mindspore.ops.NonZero 新增算子原语。

  • [STABLE] mindspore.ops.Pdist 新增算子原语。

  • [STABLE] mindspore.ops.Polar 新增算子原语。

  • [STABLE] mindspore.ops.RandomGamma 新增算子原语。

  • [STABLE] mindspore.ops.RandomPoisson 新增算子原语。

  • [STABLE] mindspore.ops.RandomShuffle 新增算子原语。

  • [STABLE] mindspore.ops.Renorm 新增算子原语。

  • [STABLE] mindspore.ops.ScatterNdMax 新增算子原语。

  • [STABLE] mindspore.ops.ScatterNdMin 新增算子原语。

  • [STABLE] mindspore.ops.Svd 新增算子原语。

  • [STABLE] mindspore.ops.TripletMarginLoss 新增算子原语。

删除接口

  • mindspore.compression特性在MindSpore 1.8版本已经废弃,在当前版本被删除。用户可以使用昇思金箍棒作为mindspore.compression的替代品来实现MindSpore中的量化感知训练算法。

  • mindspore.dataset.close_poolmindspore.dataset.to_devicemindspore.dataset.set_dynamic_columns 接口在之前版本已废弃,当前版本正式删除。

非兼容性接口变更

  • 接口名称:mindspore.set_context(mode=PYNATIVE_MODE)

    变更内容:默认由GRAPH_MODE改为PYNATIVE_MODE。

    说明:原有使用方式若未设置运行模式,该变更会影响性能,需要额外设置图模式,则使用以下方式: mindspore.set_context(mode=GRAPH_MODE)。

    原接口 v2.0.0-rc1接口
    mindspore.set_context(mode=GRAPH_MODE)
    
    mindspore.set_context(mode=PYNATIVE_MODE)
    
  • 接口名称:mindspore.train.Model.train

    变更内容:dataset_sink_mode 默认值由True改为False。

    说明:原有使用方式若未设置dataset_sink_mode,该变更会影响性能,需要额外设置数据下沉运行模式,则使用以下方式: Model.train(dataset_sink_mode=True)。

    原接口 v2.0.0-rc1接口
    Model.train(dataset_sink_mode=True)
    
    Model.train(dataset_sink_mode=False)
    
  • 接口名称:mindspore.export

    变更内容:参数file_format由”AIR”改为不指定默认值。

    说明:原有使用方式若未设置file_format,需要额外设置file_format,则使用以下方式: mindspore.export(net, *inputs, file_name, file_format=”AIR”, **kwargs)。

    原接口 v2.0.0-rc1接口
    mindspore.export(net, *inputs, file_name,
                     file_format="AIR", **kwargs)
    
    mindspore.export(net, *inputs, file_name,
                     file_format, **kwargs)
    
  • 接口名称:mindspore.ops.norm

    变更内容:扩展ord参数功能,支持多种形式。

    原接口 v2.0.0-rc1接口
    ops.norm(input_x, axis, p=2, keep_dims=False, epsilon=1e-12)
    >>> # 举例:
    >>> input = Tensor(np.array([[[1.0, 2.0], [3.0, 4.0]],
    ...                          [[5.0, 6.0], [7.0, 8.0]]]).astype(np.float32))
    >>> output = ops.norm(input, [0, 1], p=2)
    
    ops.norm(A, ord=None, dim=None, keepdim=False, *, dtype=None)
    >>> # 举例:
    >>> input = Tensor(np.array([[[1.0, 2.0], [3.0, 4.0]],
    ...                          [[5.0, 6.0], [7.0, 8.0]]]).astype(np.float32))
    >>> output = ops.norm(input, ord=2, dim=(0, 1))
    
  • 接口名称:mindspore.Tensor.norm

    变更内容:扩展ord参数功能,支持多种形式。

    说明:参考ops.norm例子。

    原接口 v2.0.0-rc1接口
    Tensor.norm(axis, p=2, keep_dims=False, epsilon=1e-12)
    
    Tensor.norm(ord=None, dim=None, keepdim=False, *, dtype=None)
    
  • 接口名称:mindspore.ops.dropout

    变更内容:删除seed0、seed1参数,新增参数seed=None。由返回Tensor和掩码改为只返回Tensor,新增入参training=True。

    原接口 v2.0.0-rc1接口
    ops.dropout(x, p=0.5, seed0=0, seed1=0)
    >>> # 举例:
    >>> input = Tensor(((20, 16), (50, 50)),
    ...                mindspore.float32)
    >>> output, mask = dropout(x, p=0.5)
    
    ops.dropout(input, p=0.5, training=True, seed=None)
    >>> # 举例:
    >>> input = Tensor(((20, 16), (50, 50)),
    ...                mindspore.float32)
    >>> output = ops.dropout(input, p=0.5,training=True)
    
  • 接口名称:mindspore.ops.dropout2d

    变更内容:返回值从Tensor和掩码改为只返回Tensor,新增入参training=True。

    原接口 v2.0.0-rc1接口
    ops.dropout2d(x, p=0.5)
    >>> # 举例:
    >>> input = Tensor(np.ones([2, 1, 2, 3]),
    ...                mindspore.float32)
    >>> output, mask = dropout2d(input, 0.5)
    
    ops.dropout2d(input, p=0.5, training=True)
    >>> # 举例:
    >>> input = Tensor(np.ones([2, 1, 2, 3]),
    ...                mindspore.float32)
    >>> output = ops.dropout2d(input, 0.5, training=True)
    
  • 接口名称:mindspore.ops.dropout3d

    变更内容:返回值从Tensor和掩码改为只返回Tensor,新增入参training=True。

    原接口 v2.0.0-rc1接口
    ops.dropout3d(x, p=0.5)
    >>> # 举例:
    >>> input = Tensor(np.ones([2, 1, 2, 3]),
    ...                mindspore.float32)
    >>> output, mask = dropout3d(input, 0.5)
    
    ops.dropout3d(input, p=0.5, training=True)
    >>> # 举例:
    >>> input = Tensor(np.ones([2, 1, 2, 3]),
    ...                mindspore.float32)
    >>> output = ops.dropout3d(input, 0.5, training=True)
    
  • 接口名称:mindspore.ops.std

    变更内容:接口重构,接口使用方式更符合用户使用习惯。

    说明:原有unbiased如果已显示设置,采用以下替代方案: ddof=0替代unbiased=False,ddof=1替代unbiased=True。

    原接口 v2.0.0-rc1接口
    ops.std(input_x, axis=(), unbiased=True, keep_dims=False)
    
    ops.std(input, axis=None, ddof=0, keepdims=False)
    
  • 接口名称:mindspore.load_param_into_net

    变更内容:新增ckpt中未加载的参数作为返回值。

    原接口 v2.0.0-rc1接口
    net_param = load_param_into_net()
    
    net_param, ckpt_param = load_param_into_net()
    
  • 接口名称:mindspore.nn.BCELoss

    变更内容:reduction 默认值由’none’变为’mean’。

    原接口 v2.0.0-rc1接口
    BCELoss(weight=None, reduction='none')
    >>> # 举例:
    >>> weight = Tensor(np.array([[1.0, 2.0, 3.0],
    ...                           [4.0, 3.3, 2.2]]),
    ...                 mindspore.float32)
    >>> loss = nn.BCELoss(weight=weight, reduction='mean')
    >>> logits = Tensor(np.array([[0.1, 0.2, 0.3],
    ...                           [0.5, 0.7, 0.9]]),
    ...                 mindspore.float32)
    >>> labels = Tensor(np.array([[0, 1, 0], [0, 0, 1]]),
    ...                 mindspore.float32)
    >>> output = loss(logits, labels)
    >>> print(output)
    >>> 1.8952923
    
    BCELoss(weight=None, reduction='mean')
    >>> # 举例:
    >>> weight = Tensor(np.array([[1.0, 2.0, 3.0],
    ...                           [4.0, 3.3, 2.2]]),
    ...                 mindspore.float32)
    >>> loss = nn.BCELoss(weight=weight)
    >>> logits = Tensor(np.array([[0.1, 0.2, 0.3],
    ...                           [0.5, 0.7, 0.9]]),
    ...                 mindspore.float32)
    >>> labels = Tensor(np.array([[0, 1, 0], [0, 0, 1]]),
    ...                 mindspore.float32)
    >>> output = loss(logits, labels)
    >>> print(output)
    >>> 1.8952923
    
  • 接口名称:mindspore.ops.split

    变更内容:接口重构,接口使用方式更符合用户使用习惯,调整第2个和第3个参数的顺序,修改并扩展split_size_or_sections功能。

    原接口 v2.0.0-rc1接口
    ops.split(input_x, axis=0, output_num=1)
    >>> # 举例:
    >>> input = Tensor(np.array([[1, 1, 1, 1], [2, 2, 2, 2]]),
    ...                mindspore.int32)
    >>> output = ops.split(input, axis=1, output_num=4)
    
    ops.split(tensor, split_size_or_sections, axis=0)
    >>> # 举例:
    >>> input = Tensor(np.array([[1, 1, 1, 1], [2, 2, 2, 2]]),
    ...                mindspore.int32)
    >>> output = ops.split(input, split_size_or_sections=1, axis=1)
    
  • 接口名称:mindspore.Tensor.split

    变更内容:接口重构,接口使用方式更符合用户使用习惯,调整两个参数的位置,修改并扩展split_size_or_sections功能。

    说明:参考ops.split例子。

    原接口 v2.0.0-rc1接口
    Tensor.split(axis=0, output_num=1)
    
    Tensor.split(split_size_or_sections, axis=0)
    
  • 接口名称:mindspore.ops.pad

    变更内容:修改参数名paddings为padding,添加mode和value功能。

    原接口 v2.0.0-rc1接口
    ops.pad(input_x, paddings)
    >>> # 举例:
    >>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6],
    ...                            [0.4, 0.5, -3.2]]),
    ...                  mindspore.float32)
    >>> paddings = ((1, 2), (2, 1))
    >>> output = ops.pad(input_x, paddings)
    
    ops.pad(input_x, padding, mode='constant', value=None)
    >>> # 举例:
    >>> input_x = Tensor(np.array([[-0.1, 0.3, 3.6],
    ...                            [0.4, 0.5, -3.2]]),
    ...                  mindspore.float32)
    >>> paddings = (2, 1, 1, 2)
    >>> output = ops.pad(input_x, paddings)
    
  • 接口名称:mindspore.ops.meshgrid

    变更内容:入参由inputs改为*input。

    原接口 v2.0.0-rc1接口
    ops.meshgrid(inputs, indexing='xy')
    >>> # 举例:
    >>> x = Tensor(np.array([1, 2, 3, 4]).astype(np.int32))
    >>> y = Tensor(np.array([5, 6, 7]).astype(np.int32))
    >>> z = Tensor(np.array([8, 9, 0, 1, 2]).astype(np.int32))
    >>> output = ops.meshgrid((x, y, z), indexing='xy')
    
    ops.meshgrid(*inputs, indexing='xy')
    >>> # 举例:
    >>> x = Tensor(np.array([1, 2, 3, 4]).astype(np.int32))
    >>> y = Tensor(np.array([5, 6, 7]).astype(np.int32))
    >>> z = Tensor(np.array([8, 9, 0, 1, 2]).astype(np.int32))
    >>> output = ops.meshgrid(x, y, z, indexing='xy')
    
  • 接口名称:mindspore.ops.max

    变更内容:返回值调换顺序,由:“下标,最大值”改为“最大值,下标”。

    原接口 v2.0.0-rc1接口
    ops.max(x, axis=0, keep_dims=False)
    >>> # 举例:
    >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]),
    ...                mindspore.float32)
    >>> index, output = ops.max(input)
    >>> print(index, output)
    >>> 3 0.7
    
    ops.max(input, axis=None, keepdims=False, *, initial=None, where=True, return_indices=False)
    >>> # 举例:
    >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]),
    ...                mindspore.float32)
    >>> output, index = ops.max(input, axis=0)
    >>> print(output, index)
    
  • 接口名称:mindspore.ops.min

    变更内容:返回值调换顺序,由:“下标,最小值”改为“最小值,下标”。

    原接口 v2.0.0-rc1接口
    ops.min(x, axis=0, keep_dims=False)
    >>> # 举例:
    >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]),
    ...                mindspore.float32)
    >>> index, output = ops.min(input)
    >>> 0 0.0
    
    ops.min(input, axis=None, keepdims=False, *, initial=None, where=True, return_indices=False)
    >>> # 举例:
    >>> input = Tensor(np.array([0.0, 0.4, 0.6, 0.7, 0.1]),
    ...                mindspore.float32)
    >>> output, index = ops.min(input, keepdims=True)
    >>> 0.0 0
    
  • 接口名称:mindspore.ops.random_gamma

    变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。

    原接口 v2.0.0-rc1接口
    ops.random_gamma(shape, alpha, seed=0, seed2=0)
    
    ops.random_gamma(shape, alpha, seed=None)
    
  • 接口名称:mindspore.ops.standard_laplace

    变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。

    原接口 v2.0.0-rc1接口
    ops.standard_laplace(shape, seed=0, seed2=0)
    
    ops.standard_laplace(shape, seed=None)
    
  • 接口名称:mindspore.ops.standard_normal

    变更内容:删除seed2参数,seed=0改为None。框架行为统一且符合用户实际使用场景及习惯。

    原接口 v2.0.0-rc1接口
    ops.standard_normal(shape, seed=0, seed2=0)
    
    ops.standard_normal(shape, seed=None)
    
  • 接口名称:mindspore.ops.bernoulli

    变更内容:seed的默认值由-1改为None。符合用户实际使用场景。

    原接口 v2.0.0-rc1接口
    ops.bernoulli(x, p=0.5, seed=-1)
    
    ops.bernoulli(input, p=0.5, seed=None)
    
  • 接口名称:mindspore.data_sink

    变更内容:删除steps参数,jit参数名称修改为jit_config,新增input_signature参数。增加易用性,符合用户实际使用场景。

    原接口 v2.0.0-rc1接口
    mindspore.data_sink(fn, dataset, steps,
                        sink_size=1, jit=False)
    
    mindspore.data_sink(fn, dataset, sink_size=1,
                        jit_config=None, input_signature=None)
    
  • 接口名称:mindspore.ops.conv2d

    变更内容:扩展接口功能,添加bias参数,修改参数名及参数顺序。

    原接口 v2.0.0-rc1接口
    conv2d(inputs, weight, pad_mode="valid",
           padding=0, stride=1, dilation=1, group=1)
    
    conv2d(input, weight, bias=None, stride=1,
           pad_mode="valid", padding=0, dilation=1, groups=1)
    
  • 接口名称:mindspore.dataset.vision.Pad

    变更内容:调整Pad、RandomCrop、RandomCropWithBbox入参padding,当Padding输入长度为2的序列时,行为将从使用第一个值填充左/上边界,使用第二个值填充右/下边界,变为使用第一个值填充左/右边界,使用第二个值填充上/下边界。

    说明:仅使用size为2的padding参数无法兼容旧版本的效果,需显式表示(左、右、上、下)。

    原接口 v2.0.0-rc1接口
    mindspore.dataset.vision.Pad(padding=(1,2))
    代表图片的左/上填充 1像素,右/下填充 2像素
    
    mindspore.dataset.vision.Pad(padding=(1,2,1,2))
    代表图片的左/上填充 1像素,右/下填充 2像素
    
  • 接口名称:mindspore.dataset.Dataset.map

    变更内容:删除column_order参数。因为在绝大部分的情况下,output_columns参数与column_order参数都是同一个值,不需要再传入column_order。若需要调整数据列顺序,使用mindspore.dataset.Dataset.project实现。

    说明:

    1. 在不需要改变列顺序时,直接去掉column_order参数即可。

    2. 需要指定数据列顺序时,删除column_order参数,并在后面加上一个project方法进行列变换(如下面的例子)。

    原接口 v2.0.0-rc1接口
    >>> dataset = dataset.map(operations=[transforms],
    ...                       input_columns=["column_a"],
    ...                       output_columns=["column_b", "column_c"],
    ...                       column_order=["column_c", "column_b"])
    
    >>> dataset = dataset.map(operations=[transforms],
    ...                       input_columns=["column_a"],
    ...                       output_columns=["column_b", "column_c"])
    >>> dataset = dataset.project(["column_c", column_b"])")
    
  • 接口名称:mindspore.dataset.Dataset.batch

    变更内容:删除column_order参数。因为在绝大部分的情况下,output_columns参数与column_order参数都是同一个值,不需要再传入column_order。若需要调整数据列顺序,使用mindspore.dataset.Dataset.project实现。

    说明:

    1. 在不需要改变列顺序时,直接去掉column_order参数即可。

    2. 需要指定数据列顺序时,删除column_order参数,并在后面加上一个project方法进行列变换(如下面的例子)。

    原接口 v2.0.0-rc1接口
    >>> dataset = dataset.batch(batch_size=4,
    ...                         input_columns=["column_a"],
    ...                         output_columns=["column_b", "column_c"],
    ...                         column_order=["column_c", "column_b"])
    
    >>> dataset = dataset.batch(batch_size=4, input_columns=["column_a"]
    ...                         output_columns=["column_b", "column_c"])
    >>> dataset = dataset.project(["column_c", column_b"])")
    
  • 接口名称:mindspore.dataset.Dataset.batch

    变更内容:将batch方法拆分为:batch和padded_batch两个方法。pad_info参数从batch方法移动到padded_batch方法。

    说明:如需使用pad_info参数,改用padded_batch方法。

    原接口 v2.0.0-rc1接口
    >>> dataset = dataset.batch(batch_size=4,
    ...                         drop_remainder=True, pad_info=...)
    
    >>> dataset = dataset.padded_batch(batch_size=4,
    ...                                drop_remainder=True, pad_info=...)
    

Bug fixes

  • [I66PE6] 修复 AssignSub算子异常入参导致core dump的问题。

  • [I6F5E6] 修复 data_sink 方法在Ascend上执行超时的问题。

其它

  • Windows系统支持由于还在优化中,rc版本暂不支持,将在2.0正式版本提供下载。

贡献者

感谢以下人员做出的贡献:

alashkari,anzhengqi,archer2049,B.L.LAN,baihuawei,bichaoyang,BJ-WANG,Bokai Li,Brian-K,caifubi,caiyimeng,cathwong,changzherui,ChenDonYY,chenfei_mindspore,chengang,chengbin,chenhaozhe,chenjianping,chenkang,chenweifeng,chuht,chujinjin,davidanugraha,DavidFFFan,DeshiChen,douzhixing,emmmmtang,Erpim,Ethan,fangwenyi,fangzehua,fangzhou0329,fary86,fengyixing,gaoshuanglong,Gaoxiong,gaoyong10,gengdongjie,gongdaguo1,Greatpan,GuoZhibin,guozhijian,hangq,hanhuifeng,haozhang,hedongdong,Henry Shi,heterogeneous_to_backoff_2_0,huangbingjian,huanghui,huangxinjing,hujiahui8,hujingsong,huoxinyou,jachua,jiahongQian,jianghui58,jiangzhenguang,jiaorui,jiaoy1224,jijiarong,jjfeing,JoeyLin,json,JuiceZ,jxl,kairui_kou,KevinYi,kisnwang,KXiong,laiyongqiang,lanzhineng,liangchenghui,liangzelang,LiangZhibo,lianliguang,lichen,ligan,lijunbin,limingqi107,ling,linqingke,liubuyu,liuchao,liuchuting,liujunzhu,liuluobin,liutongtong9,liuyang811,lixiao,liyan2022,liyejun,liyuxia,looop5,luochao60,luojianing,luoyang,luoyuan,lyqlola,maning202007,maoyaomin,Margaret_wangrui,mayadong,MaZhiming,melody,mengyuanli,michaelzhu_70ab,Mohammad Motallebi,moran,NaCN,nomindcarry,OwenSec,panfengfeng,panshaowu,panzhihui,pkuliuliu,qinzheng,qiuzhongya,qujianwei,r1chardf1d0,Renyuan Zhang,RobinGrosman,shaojunsong,shenwei41,Soaringfish,tangdezhi_123,tanghuikang,tan-wei-cheng,TinaMengtingZhang,TronZhang,TuDouNi,VectorSL,wang_ziqi,wanghenchang,wangnan39,wangpingan,wangshaocong,wangshengnan123,wangtongyu6,weichaoran,wind-zyx,wqx,wtcheng,wujueying,wYann,XianglongZeng,xiaohanzhang,xiaotianci,xiaoyao,XinDu,xulei,xumengjuan1,xupan,xwkgch,yanghaoran,yangluhang,yangruoqi713,yangshuo,yangsijia,yangzhenzhang,yanzhenxiang2020,Yanzhi_YI,yao_yf,yefeng,yeyunpeng2020,Yi_zhang95,yide12,YijieChen,YingLai Lin,YingtongHu,youshu,yuchaojie,yuedongli,YuJianfeng,zangqx,ZengZitao,zhangbuxue,zhangdanyang,zhangdong,zhangfanghe,zhangqi,zhangqinghua,zhangyanhui,zhangyinxia,zhangyongxian,zhangzhaoju,zhanzhan,zhengzuohe,ZhidanLiu,zhixinaa,zhoufeng,zhouyaqiang0,zhuguodong,zhupuxu,zhuyuxiao,zichun_ye,zjun,zlq2020,zong_shuai,ZPaC,zuochuanyong,zyli2020,陈宇,范吉斌,冯一航,胡彬,宦晓玲,黄勇,雷元哲,李良灿,李林杰,刘崇鸣,刘力力,刘勇琪,吕浩宇,吕昱峰(Nate.River),没有窗户的小巷,沈竞兴,十六夜,王程浩,王禹程,王振邦,徐安越,徐永飞,杨旭华,于振华,俞涵,张清华,张澍坤,张栩浩,张学同,赵英灼,周超,周洪叶,朱家兴

欢迎以任何形式对项目提供贡献!