MindSpore在有动态shape的情况下,将data_sink_mode设置为False会出现报错

之前设置图模式运行模型的时候提示有动态shape算子,要设置set_inputs。于是我进行了如下设置

network.set_inputs(ms.Tensor(shape=[opt.batch_size,2,1,3,opt.sequence_length,17],dtype=ms.float32,init=One()))
net_loss.set_inputs(ms.Tensor(shape=[opt.batch_size,128],dtype=ms.float32,init=One()),ms.Tensor(shape=[opt.batch_size,4],dtype=ms.int32,init=One()))

在经过这样的设置之后,代码能在图模式下成功运行。 但现在模型遇到了点问题,需要将model.train中的dataset_sink_mode设置为False来debug。 但是这样设置后在训练时就会报错。

Traceback (most recent call last):
  File "train.py", line 259, in <module>
    model.train(opt.epochs, train_ds, callbacks=[ckpoint,loss_monitor],dataset_sink_mode=False)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/train/model.py", line 911, in train
    sink_size=sink_size)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/train/model.py", line 91, in wrapper
    func(self, *args, **kwargs)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/train/model.py", line 547, in _train
    self._train_process(epoch, train_dataset, list_callback, cb_params)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/train/model.py", line 799, in _train_process
    outputs = self._train_network(*next_element)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/nn/cell.py", line 586, in __call__
    out = self.compile_and_run(*args)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/nn/cell.py", line 963, in compile_and_run
    self.compile(*inputs)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/nn/cell.py", line 939, in compile
    self._check_compile_dynamic_shape(*inputs)
  File "/home/ma-user/.local/lib/python3.7/site-packages/mindspore/nn/cell.py", line 2155, in _check_compile_dynamic_shape
    f"For 'set_inputs', the Length of Tensor should be {len_inputs}, but got {len_dynamic_shape_inputs}."
ValueError: For 'set_inputs', the Length of Tensor should be 2, but got 1.

请问出现这种报错的原因可能是什么?不设置dataset_sink_mode为False的是可以跑起来的。

版本如下 mindspore 1.7.0 ascend 910

****************************************************解答*****************************************************

设置为PyNative模式:context.set_context(mode=context.PYNATIVE_MODE)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值