[Keras] Inputのshapeとbatch_shapeの違いは?
keras.Inputを用いる際、
inputs = Input(shape(in_shape, in_dim))
と
inputs = Input(batch_shape(batch_size, in_shape, in_dim))
の引数の指定の仕方が存在する。
このshapeとbatch_shapeの違いは、kerasのソースコードを見ると把握できる。
shape: A shape tuple (integer), not including the batch size. For instance, `shape=(32,)` indicates that the expected input will be batches of 32-dimensional vectors. batch_shape: A shape tuple (integer), including the batch size. For instance, `batch_shape=(10, 32)` indicates that the expected input will be batches of 10 32-dimensional vectors. `batch_shape=(None, 32)` indicates batches of an arbitrary number of 32-dimensional vectors.
これを見ると明らかだが、shapeとbatch_shapeに大きな違いは存在せず、単に、batch_sizeが含まれているかどうかの違いだけである。
このため、
shape=(32,)
と
batch_shape=(None,32)
は同じことを意味する。
kerasでモデルを記述する場合、Inputでbatch_sizeを指定するよりもmodel.fitで指定することの方が多いので、基本的にshapeで指定する形で問題ないだろう。
参考
https://stackoverflow.com/questions/44792106/when-do-you-use-input-shape-vs-batch-shape-in-keras
ディスカッション
コメント一覧
まだ、コメントがありません