pytorch中的外币等

时间:2018-10-12 13:27:00

标签: python optimization pytorch torch

Numpy可以为任何RxR -> R函数(例如np.multiply.outernp.subtract.outer)的行为提供优化的外部操作:

>>> np.subtract.outer([6, 5, 4], [3, 2, 1])
array([[3, 4, 5],
       [2, 3, 4],
       [1, 2, 3]])

Pytorch似乎没有提供这样的功能(或者我错过了)。
使用火炬张量的最佳/通常/最快/最干净的方法是什么?

1 个答案:

答案 0 :(得分:2)

根据documenation

  

许多PyTorch操作都支持NumPy广播语义。

外部减法是从2d数组到1d数组的广播减法,因此从本质上讲,您可以将第一个数组整形为(3,1),然后从中减去第二个数组:

$ source <(
    ruby -e '
        require "yaml"
        result = Hash.new {|h,k| h[k] = Array.new}
        data = YAML.load_file(ARGV.shift)
        data["services"].each do |obj|
            obj.keys.each {|k| result[k] << obj[k]}
        end
        result.each_pair do |k,v|
            printf "%ss=(%s)\n", k, v.map {|e| "\"#{e}\""}.join(" ")
        end
    ' file.yaml
)

$ declare -p apps ports services
declare -a apps=([0]="mysql" [1]="mongo_instance" [2]="restful_api")
declare -a ports=([0]="" [1]="" [2]="5000")
declare -a services=([0]="mysql" [1]="mongo" [2]="api")