Numpy可以为任何RxR -> R
函数(例如np.multiply.outer
或np.subtract.outer
)的行为提供优化的外部操作:
>>> np.subtract.outer([6, 5, 4], [3, 2, 1])
array([[3, 4, 5],
[2, 3, 4],
[1, 2, 3]])
Pytorch似乎没有提供这样的功能(或者我错过了)。
使用火炬张量的最佳/通常/最快/最干净的方法是什么?
答案 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")