teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

文法の修正

2018/01/05 10:37

投稿

yosider
yosider

スコア32

answer CHANGED
@@ -1,11 +1,10 @@
1
1
  ※追記
2
2
  ---
3
- randn(*sizes)という定義では,randnが可変長引数を取れるようにはなるものの,
3
+ randn(*sizes)という定義では,randnが可変長引数を取れるようにはなるものの,それは
4
- それは
5
4
  randn(3)
6
5
  randn(3,2)
7
6
  randn(3,2,4)
8
- など可能にするだけであり,
7
+ など可能にするだけであり,
9
8
  randn((3,2))
10
9
  などはやはりエラーになるはずです.
11
10
  従って下の説明では不十分と思います.

2

誤りの訂正,回答の補足

2018/01/05 10:37

投稿

yosider
yosider

スコア32

answer CHANGED
@@ -1,3 +1,21 @@
1
+ ※追記
2
+ ---
3
+ randn(*sizes)という定義では,randnが可変長引数を取れるようにはなるものの,
4
+ それは
5
+ randn(3)
6
+ randn(3,2)
7
+ randn(3,2,4)
8
+ などが可能にするだけであり,
9
+ randn((3,2))
10
+ などはやはりエラーになるはずです.
11
+ 従って下の説明では不十分と思います.
12
+ 公式レポジトリの関連する[issue](https://github.com/pytorch/pytorch/issues/1616)に,long_args なるパラメータに関する言及があるので,それが関わっていそうです.
13
+ 残念ながら私はpytorchに明るくないので詳しいことはわかりかねます.
14
+ 申し訳ありません.
15
+ (追記終わり)
16
+
17
+ ---
18
+
1
19
  Pythonでは,数字をカッコで括ると,タプルという別のオブジェクトになります.
2
20
  従って,ふつう randn(1,2,3) と randn((1,2,3)) は両立しません.(一方はエラーになります.)
3
21
 

1

文章6行目を追加

2018/01/05 10:36

投稿

yosider
yosider

スコア32

answer CHANGED
@@ -5,7 +5,7 @@
5
5
  torch.randn(*sizes, out=None) → Tensor
6
6
  とあります.
7
7
 
8
- このように定義れば randn(1,2,3) randn((1,2,3)) 両立させるこきます.
8
+ なわち,randnは可変長引数sizesオプション引数outをとりTensorを返す関数です.
9
9
  Pythonにおいて*は乗算のほかにunpack(分解)にも用いられます.
10
10
  ```python3
11
11
  >>> a, *b = 1,2,3,4,5
@@ -23,5 +23,6 @@
23
23
  1 2 3
24
24
  ```
25
25
 
26
+ このように定義すれば randn(1,2,3) と randn((1,2,3)) を両立させることができます.
26
27
  pytorchを使ったことがないのでよくわかりませんが,意図としては
27
28
  どちらの引数でもエラーにならないため,ユーザーが好きなほうを使えるようにした,という感じでしょうか.