【问题标题】:Initialize parameters as zeros in Python在 Python 中将参数初始化为零
【发布时间】:2019-05-27 11:38:54
【问题描述】:

我尝试实现参数初始化,得到错误信息:

import numpy as np

def initialize_with_zeros(dim):
    w = np.zeros(dim, 1)
    b = 0
    return w, b

dim = 2
initialize_with_zeros(dim)

这是错误:

TypeError Traceback(最近调用 最后)在() 5 6 暗 = 2 ----> 7 initialize_with_zeros(dim)

in initialize_with_zeros(dim) 1 def initialize_with_zeros(dim): ----> 2 w = np.zeros(dim, 1) 3 b = 0 4 返回 w, b 5

TypeError: 数据类型不理解

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    np.zeros 仅将形状作为元组或单个整数(在一维数组的情况下)。如果您只需要一个一维数组,请传递一个参数。如果您需要二维数组,请作为元组 (dim,1) 传递。因此,根据您的需要,使用

    w = np.zeros(dim)
    

    这会给你一个零的一维数组

    或使用

    w = np.zeros((dim, 1))
    

    这将为您提供一个二维数组,其中包含 dim 行数和 1 列。

    来自official docs

    numpy.zeros(shape, dtype=float, order='C')

    参数:
    shape : int 或 tuple of ints 新数组的形状,例如 (2, 3) 或 2。

    【讨论】:

      【解决方案2】:

      用零初始化参数:

      # GRADED FUNCTION: initialize_with_zeros
      import numpy as np
      
      def initialize_with_zeros(dim):
          w = np.zeros([dim, 1])
          b = 0
          return w, b
      
      dim = 2
      w,b=initialize_with_zeros(dim)
      
      print ("w = " + str(w))
      print ("b = " + str(b))
      

      【讨论】:

      • 欢迎来到 Stack Overflow。不鼓励仅使用代码的答案,因为它们没有解释它如何解决问题。另外,w.r.t.到official documentation numpy.zeros(shape, dtype=float, order='C') 和现有的和来自Sheldore 的accepted answer 相关,了解您为什么使用[dim, 1] 而不是(dim, 1) 会很有趣,有什么区别?请编辑您的答案,以说明您的答案对现有答案的改进。
      猜你喜欢
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      相关资源
      最近更新 更多