永不秃头的ssf 2019-08-25 21:33 采纳率: 0%
浏览 231
已结题

Coursera deeplearning作业代码的关于数组乘法的相关问题

这个作业是deeplearning专项课程第五节课序列模型的作业。

图片说明

对于这些公式,网上答案是这样的:

 dot = da_next*np.tanh(c_next)*ot*(1-ot)
    dcct =(dc_next * it + ot * (1 - np.square(np.tanh(c_next))) * it * da_next) * (1 - np.square(cct))
    dit = (dc_next * cct + ot * (1 - np.square(np.tanh(c_next))) * cct * da_next) * it * (1 - it)
    dft = (dc_next * c_prev + ot * (1 - np.square(np.tanh(c_next))) * c_prev * da_next) * ft * (1 - ft)

图片说明

都是用乘法符号,就是按照式子来的

但是到了下面的公式实现:
图片说明

然后实现的方法又变成了用np.dot

  dWf = np.dot(dft,concat.T)
    dWi = np.dot(dit,concat.T)
    dWc = np.dot(dcct,concat.T)
    dWo = np.dot(dot,concat.T)

到了下面的公式,有的用np.dot,有的用*

图片说明

 da_prev = np.dot(parameters["Wf"][:, :n_a].T, dft) + np.dot(parameters["Wc"][:, :n_a].T, dcct) +  np.dot(parameters["Wi"][:, :n_a].T, dit) + np.dot(parameters["Wo"][:, :n_a].T, dot)
    dc_prev = dc_next*ft+ot*(1-np.tanh(c_next)**2)*ft*da_next
    dxt = np.dot(parameters["Wf"][:, n_a:].T, dft) + np.dot(parameters["Wc"][:, n_a:].T, dcct) +  np.dot(parameters["Wi"][:, n_a:].T, dit) + np.dot(parameters["Wo"][:, n_a:].T, dot)

就是第一个和第三个用np.dot,第二个用*

哪位大神能详细说明一下怎么判断用哪种嘛

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-08-25 23:48
    关注

    叉乘和点乘的数学意义不同,具体用哪一个,要看数学公式本身的意义

    乘积(*)是矩阵每行每列对应元素的相乘
    点积(dot)的结果的每个元素ij是第一个矩阵第i行和第二个矩阵第j列的乘积的和

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流