●入力チャネル16個ぶんの乗算結果16個を足し込む

 図8-74はtb_conv_hw/conv_hw_1/conv_layer3_instの下のmac_all_00〜07です。これらは出力チャネル00〜07における行列演算結果を足し込んだものです。


  図8-74 行列乗算結果16個を足し込んだ


●行列演算結果を足し込んだ結果をEXCELと比較する

 EXCELのシートim2colAll_W3(図8-75)はim2col01_W3〜im2col15_W3まで16シートを足しこんだものです。A列がmac_all_00、B列がmac_all_01に相当します。I列以降は次回のシーケンスで計算します。



  図8-75 im2colAll_W3シート(conv_layer3.xlsm)


●乗算後は速やかに8ビット右シフト

 それらを8ビット右シフトしたものがtb_conv_hw/conv_hw_1/conv_layer3_instの下のtruncate_00〜07です。値が1/256になっています。




  図8-76 ビットシフトで1/256に


●8ビット右シフト結果をEXCELと比較

 EXCELのシートtruncate(図8-77)のA列がtruncate_00、B列がtruncate_01に相当します。



  図8-77 truncateシート(conv_layer3.xlsm)


●1/256にしてからバイアスを加算する

 それらにバイアスを加算したものがtb_conv_hw/conv_hw_1/conv_layer3_instの下のplusBias_00〜07です(図8-78)。



  図8-78 バイアス値を加算


●バイアス加算結果をEXCELと比較

 EXCELのシートplusBias(図8-79)のA列がplusBias_00、B列がplusBias_01に相当します。



  図8-79 plusBiasシート(conv_layer3.xlsm)


●ReLUで負の数は0にする

 それらにReLU関数を施したものがtb_conv_hw/conv_hw_1/conv_layer3_instの下のRelu_00〜07です(図8-80)。



  図8-80 ReLUのシミュレーション


●ReLUの結果をEXCELと比較

 EXCELのシートRelu(図8-81)のA列がRelu_00、B列がRelu_01に相当します。



  図8-81 Reluシート(conv_layer3.xlsm)


次のページへ


目次へ戻る