乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Paddle報(bào)錯(cuò)的解決方案(持續(xù)更新)

       hncdman 2022-05-25 發(fā)布于湖南



      本文總結(jié)了我在使用Paddle Paddle過程中,遇到的各種疑難問題及解決方法。

      蒟蒻預(yù)告:本人很菜,遇到的問題也很基礎(chǔ)。

      問題一

      exe.run(program=fluid.default_main_program(), fetch_list=[y1])

      報(bào)錯(cuò)內(nèi)容:[operator < fetch > error]

      解決方法:加上初始化代碼

      ##程序初始化##

      paddle.enable_static()

      # main_program = paddle.static.Program()

      # startup_program = paddle.static.Program()

      ————————————————



      問題一

       self.output = paddle.layer.fc(

                  input=[self.linear_part, self.interaction_part],

                  size=1,

                  act=paddle.activation.Sigmoid(),

                  param_attr=paddle.attr.ParamAttr(

                      name="%s_fc_output_linear_part.w" % self.network_name,

                      is_static=is_subnet_param_static,

                      l2_rate=self.l2_rate,

                  ),

                  bias_attr=paddle.attr.ParamAttr(

                      name="%s_fc_output_linear_part.b" % self.network_name,

                      is_static=is_subnet_param_static,

                      l2_rate=self.l2_rate,

                  )

              )

      1

      2

      報(bào)錯(cuò)如下:

      File "/python/lib/python2.7/site-packages/paddle/trainer/config_parser.py", line 4341, in my_fatal

      raise Exception()


      原因如下:

      When the name field of param_attr is manually specified and the input is a list, the param_attr should also be a list with each item being the param_attr for each input item. If only one named param_attr is provided, all the input items would share this parameter.

      但由于fc_layer的更新,使得不能默認(rèn)的共享參數(shù),導(dǎo)致報(bào)錯(cuò)。

      解決方法:

      若代碼設(shè)定param_attr,而input是個(gè)list,param_attr也設(shè)置成list,即可解決。

      參考:

      https://github.com/PaddlePaddle/models/issues/512

      問題二

      報(bào)錯(cuò)如下:

      File "/python/lib/python2.7/site-packages/paddle/trainer_config_helpers/layers.py", line 7599, in factorization_machine  assert isinstance(input, LayerOutput)

      AssertionError

      1

      2

      報(bào)錯(cuò)原因:

      paddle.layer.factorization_machine不支持input為list

      問題三

      報(bào)錯(cuò)如下:

      報(bào)錯(cuò)原因:

      concat數(shù)據(jù)的類型不同,有sparse和dense。

      參考:

      https://github.com/PaddlePaddle/Paddle/issues/3338

      問題四

      在使用paddle v2的factorization_machine時(shí)遇到如下兩種錯(cuò)誤:

      first_order = paddle.layer.fc(input=input_layer, size=1, act=paddle.activation.Linear())

      second_order = paddle.layer.factorization_machine(

           input=input_layer,

           factor_size=128,

           act=paddle.activation.Linear(),

           param_attr=paddle.attr.Param(name="SparseFeatFactors"))

       self.output = paddle.layer.addto(

           input=[first_order, second_order],

           act=paddle.activation.Linear(),

           bias_attr=False)


      報(bào)錯(cuò)一:

      原因如下:

      在addto層沒有設(shè)置激活函數(shù)(Linear即不做任何激活),應(yīng)該添加激活函數(shù)Sigmoid/Softmax。

      報(bào)錯(cuò)二:

      解決方法:

      此處batch size設(shè)置為1,當(dāng)?shù)谝淮位貍鲿r(shí)報(bào)錯(cuò),將factor_size修改成512后,在第2個(gè)epoch報(bào)錯(cuò),修改成1024后沒有報(bào)錯(cuò)(暫不知原因)。

      報(bào)錯(cuò)三:

      當(dāng)用MPI集群跑時(shí),報(bào)錯(cuò)Floating point exception。

      可能原因如下:

      1)在Paddle里面,并沒有計(jì)算每條樣本的平均梯度,而是使用所有樣本的整體梯度去更新網(wǎng)絡(luò),如果batch太大,會導(dǎo)致梯度爆炸

      2)輸入數(shù)據(jù)中存在NAN

      解決方法:

      1)改小batch_size

      2)將學(xué)習(xí)率改成e-2/batch_size

      3)排查輸入數(shù)據(jù)

      參考文獻(xiàn):

      https://github.com/jacquesqiao/Paddle/wiki/Paddle-Float-Point-exception的問題原因

      https://github.com/PaddlePaddle/Paddle/issues/13547

      問題五

      報(bào)錯(cuò)如下:

      Check failed: in_->ids

      1

      可能原因如下:

      某個(gè)layer的輸入類型錯(cuò)誤

      參考文獻(xiàn):

      https://github.com/PaddlePaddle/Paddle/issues/2867

      問題六

      報(bào)錯(cuò)如下:

      可能原因如下:

      輸入數(shù)據(jù)有空

      問題七

      報(bào)錯(cuò)如下:

      輸入層

      self.words_data = paddle.layer.data(

                  name="words_data",

                  type=paddle.data_type.integer_value_sequence(self.words_dim)

              )

      報(bào)錯(cuò)層        

          def create_user_rnn(self, input_data):

              source_embedding = paddle.layer.embedding(

                  input=input_data,

                  size=self.user_embedding_size)

              source_vec = paddle.networks.bidirectional_gru(

                  input=source_embedding,

                  size=self.gru_cnn_size,

                  fwd_act=paddle.activation.Tanh(),

                  fwd_gate_act=paddle.activation.Sigmoid(),

                  bwd_act=paddle.activation.Tanh(),

                  bwd_gate_act=paddle.activation.Sigmoid())

              return source_vec



      原因如下:

      在rnn中輸入的某條數(shù)據(jù)為空,[],但是在CNN中存在輸入數(shù)據(jù)為空,不會報(bào)錯(cuò)(不知為何)。

      問題八

      報(bào)錯(cuò)如下:

      原因如下:

      1)https://github.com/PaddlePaddle/Paddle/issues/2062 ,定義input layer類型不對,應(yīng)該定義為sequence類型;

      2)輸入數(shù)據(jù),必須是兩個(gè)元素以上,比如,feeding={“l(fā)eft_query”:0}報(bào)錯(cuò),feeding={“l(fā)eft_query”:0,“l(fā)ine”:1}解決問題,yield數(shù)據(jù)時(shí),增加了一個(gè)元素line,feeding時(shí)若不需要line,可以不用添加,此處為了說明yield數(shù)據(jù)不能為一個(gè)元素;

      問題九

      param_attrs = paddle.attr.ParamAttr(

                  name="%s_fc_output_for_sparse.w" % (self.network_name),

                  is_static=is_subnet_param_static,

                  l2_rate=self.l2_rate,

              ),

              if isinstance(self.last_hidden_layer, collections.Sequence):

                  param_attrs = [param_attrs]

                  param_attrs.append(

                      paddle.attr.ParamAttr(

                          name="%s_fc_output_for_dense.w" % (self.network_name),

                          is_static=is_subnet_param_static,

                          l2_rate=self.l2_rate,

                      )

                  )

              self.output = paddle.layer.fc(

                  input=self.last_hidden_layer,

                  size=1,

                  act=paddle.activation.Sigmoid(),

                  param_attr=param_attrs,

                  bias_attr=paddle.attr.ParamAttr(

                      name="%s_fc_output_b" % (self.network_name),

                      is_static=is_subnet_param_static,

                      l2_rate=self.l2_rate,

                  )

              )


      原因如下:fc輸入是list,所以param也需要是list,定義param_attrs時(shí)候多了個(gè)","。

      param_attrs = paddle.attr.ParamAttr(

                  name="%s_fc_output_for_sparse.w" % (self.network_name),

                  is_static=is_subnet_param_static,

                  l2_rate=self.l2_rate,

              )

      ————————————————

      版權(quán)聲明:本文為CSDN博主「沉香屑_」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。

      原文鏈接:https://blog.csdn.net/qq_23142123/article/details/89405261

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多