【手続補正書】
【提出日】令和2年5月7日(2020.5.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータにより実現される方法であって、
専用ハードウェア回路上に畳み込みニューラルネットワークを実装する要求を受け取り、前記ニューラルネットワークを用いて、前記専用ハードウェア回路に命令を実行させることによって、ニューラルネットワーク入力を受け取って処理することを備え、前記ニューラルネットワークは、１より大きいストライドを有する第１の畳み込みニューラルネットワーク層を含み、前記ハードウェア回路は、ニューラルネットワーク計算を実行するための集積回路であり、ベクトル-行列乗算を実行するようにされた行列計算ユニットと、前記行列計算ユニットの出力に対してプーリングを実行するようにされたプーリング回路を含むベクトル計算ユニットとを含み、前記方法はさらに、
これに応答して、前記ハードウェア回路によって実行されると、前記ハードウェア回路に、前記ニューラルネットワークによる入力テンソルの処理中に、動作を実行することによって前記第１の畳み込みニューラルネットワーク層の出力と等価な層出力テンソルを生成させる命令を生成することを備え、前記動作は、
前記行列計算ユニットが、前記第１の畳み込みニューラルネットワーク層への前記入力テンソルを、１に等しいストライドを有するがそれ以外は前記第１の畳み込みニューラルネットワーク層と同等である第２の畳み込みニューラルネットワーク層を用いて処理することにより、第１のテンソルを生成することと、
前記ベクトル計算ユニットが、前記第２の畳み込みニューラルネットワーク層が前記第１の畳み込みニューラルネットワーク層のストライドを有する場合には生成されなかったであろう前記第１のテンソルの要素を零出力して、第２のテンソルを生成することと、
前記ベクトル計算ユニットの前記プーリング回路が、前記第２のテンソルに対して最大プーリングを実行して前記層出力テンソルを生成することとを含み、
前記ベクトル計算ユニットが前記第１のテンソルの要素を零出力することは、
前記ベクトル計算ユニットがマスキングテンソルと前記第１のテンソルとの要素ごとの乗算を実行して前記第２のテンソルを生成することを含み、前記マスキングテンソルは、（ｉ）前記第２の畳み込みニューラルネットワーク層が前記第１の畳み込みニューラルネットワーク層のストライドを有する場合には生成されなかったであろう前記第１のテンソルの要素に対応する前記マスキングテンソルの各要素位置において０を含み、（ｉｉ）前記マスキングテンソルの各他の要素位置において１を含む、コンピュータにより実現される方法。
【請求項２】
前記ベクトル計算ユニットが前記第１のテンソルの要素を零出力することは、
前記第１のテンソルの要素のサブセットに０を乗算することと、
前記サブセットに含まれていない前記第１のテンソルの要素に１を乗算することとを含む、請求項１に記載の方法。
【請求項３】
コンピュータにより実現される方法であって、
専用ハードウェア回路上に畳み込みニューラルネットワークを実装する要求を受け取り、前記ニューラルネットワークを用いて、前記ハードウェア回路に命令を実行させることによって、ニューラルネットワーク入力を受け取って処理することを備え、前記ニューラルネットワークは、１より大きいストライドを有する第１の畳み込みニューラルネットワーク層を含み、前記ハードウェア回路は、ニューラルネットワーク計算を実行するための集積回路であり、ベクトル−行列乗算を実行するようにされた行列計算ユニットと、前記行列計算ユニットの出力に対してプーリングを実行するようにされたプーリング回路を含むベクトル計算ユニットとを含み、前記方法はさらに、
これに応答して、前記ハードウェア回路によって実行されると、前記ハードウェア回路に、前記ニューラルネットワークによる入力テンソルの処理中に、動作を実行することによって前記第１の畳み込みニューラルネットワーク層の出力と等価な層出力テンソルを生成させる命令を生成することを備え、前記動作は、
前記行列計算ユニットが、前記第１の畳み込みニューラルネットワーク層への前記入力テンソルを、１に等しいストライドを有するがそれ以外は前記第１の畳み込みニューラルネットワーク層と同等である第２の畳み込みニューラルネットワーク層を用いて処理することにより、第１のテンソルを生成することと、
前記ベクトル計算ユニットが、前記第２の畳み込みニューラルネットワーク層が前記第１の畳み込みニューラルネットワーク層のストライドを有する場合には生成されなかったであろう前記第１のテンソルの要素を零出力して、第２のテンソルを生成することと、
前記ベクトル計算ユニットの前記プーリング回路が、前記第２のテンソルに対して最大プーリングを実行して前記層出力テンソルを生成することとを含み、
前記ベクトル計算ユニットが前記第１のテンソルの要素を零出力することは、
前記ベクトル計算ユニットが、第１のマスキングテンソルと前記第１のテンソルとの要素ごとの乗算を実行して、修正された第１のテンソルを生成することを含み、前記第１のマスキングテンソルは、（ｉ）前記第２の畳み込みニューラルネットワーク層が前記第１の畳み込みニューラルネットワーク層のストライドを有する場合には生成されなかったであろう前記第１のテンソルの要素に対応する前記マスキングテンソルの各要素位置において０を含み、（ｉｉ）前記第２の畳み込みニューラルネットワーク層が前記第１の畳み込みニューラルネットワーク層のストライドを有する場合には生成されたであろう前記第１のテンソルの要素に対応する前記マスキングテンソルの各要素位置においてそれぞれの非０値を含み、前記ベクトル計算ユニットが前記第１のテンソルの要素を零出力することはさらに、
前記ベクトル計算ユニットが第２のマスキングテンソルと前記修正された第１のテンソルとの要素ごとの乗算を実行することを含み、前記第２のマスキングテンソルは、前記第２の畳み込みニューラルネットワーク層が前記第１の畳み込みニューラルネットワーク層のストライドを有する場合に生成されるであろう前記第１のテンソルの要素に対応する各要素位置において、前記第１のマスキングテンソルの前記それぞれの非０値の逆数を含む、コンピュータにより実現される方法。
【請求項４】
前記マスキングテンソルは、前記ハードウェア回路によってアクセス可能なメモリに格納される、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
１より大きい複数のストライドにそれぞれ対応するように、複数のマスキングテンソルが前記メモリに格納され、
前記方法はさらに、前記複数のマスキングテンソルの中から、前記第１の畳み込みニューラルネットワーク層のストライドに対応するマスキングテンソルを選択することを備える、請求項４に記載の方法。
【請求項６】
前記ベクトル計算ユニットの前記プーリング回路が最大プーリングを実行することは、前記第１の畳み込みニューラルネットワーク層のストライドによって定義される前記第２のテンソルの１つまたは複数のウィンドウの各々について、前記ウィンドウ内の要素の最大値要素を取得することを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記第２のテンソルの前記１つまたは複数のウィンドウの各々は、前記畳み込みニューラルネットワーク層のストライドに対応する次元を有する矩形ウィンドウであり、前記第２のテンソルの異なる要素を含む、請求項６に記載の方法。
【請求項８】
前記ベクトル計算ユニットの前記プーリング回路が最大プーリングを実行することは、前記第２のテンソルの要素の１つまたは複数のサブセットの各々について、前記サブセットの最大値要素を取得することを含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記畳み込みニューラルネットワーク層は、前記畳み込みニューラルネットワーク内の第１のニューラルネットワーク層であり、前記入力テンソルは、デジタル画像の、前記デジタル画像の画素に対応する要素を含む表現である、請求項１〜８のいずれか１項に記載の方法。
【請求項１０】
前記入力テンソルは前記ハードウェア回路のユニファイドバッファに格納され、前記第２の畳み込みニューラルネットワーク層の重みは前記ハードウェア回路のダイナミックメモリに格納され、前記第２の畳み込みニューラルネットワーク層を用いて前記第１の畳み込みニューラルネットワーク層への前記入力テンソルを処理することは、
前記入力テンソルを前記ユニファイドバッファから前記行列計算ユニットに送ることと、
前記ダイナミックメモリから前記行列計算ユニットに前記第２の畳み込みニューラルネットワーク層の前記重みを送ることと、
前記行列計算ユニットによって、前記第２の畳み込みニューラルネットワーク層の前記重みを用いて前記入力テンソルを処理して、前記第１のテンソルを生成することとを含む、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
システムであって、
ニューラルネットワーク計算を実行するための集積回路であり、ベクトル−行列乗算を実行するようにされた行列計算ユニットと、前記行列計算ユニットの出力に対してプーリングを実行するようにされたプーリング回路を含むベクトル計算ユニットとを含む、専用ハードウェア回路と、
命令を格納する１つまたは複数の記憶装置とを備え、前記命令は、前記ハードウェア回路によって実行されると、前記ハードウェア回路に請求項１〜１０のいずれか１項に記載の方法を実行させるよう動作可能である、システム。
【請求項１２】
１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに請求項１〜１０のいずれか１項に記載の方法を実行させる命令を含むコンピュータプログラム。