2017年 04月 19日
def __init__(self, n_units, n_out):
super(MLP, self).__init__(
# the size of the inputs to each layer will be inferred
l1=L.Linear(None, n_units), # n_in -> n_units
l2=L.Linear(None, n_units), # n_units -> n_units
l3=L.Linear(None, n_out), # n_units -> n_out
)
このプログラムでは、入力層のサイズは指定がなく、データにより自動決定される。 parser.add_argument('--unit', '-u', type=int, default=1000,
help='Number of units')
これをどう変更すればよいだろうか? parser.add_argument('--units', '-u', type=int, nargs='+', default=[1000,1000],
help='Number of units')
これで、 -u の後ろに並べた数は、整数リストになり、args.units になる。 print('# units: {}'.format(args.units))
model = L.Classifier(MLP(args.units, 10))
def __init__(self, n_units, n_out):
super(MLP, self).__init__(
# the size of the inputs to each layer will be inferred
l1=L.Linear(None, n_units[0]), # n_in -> n_units[0]
l2=L.Linear(None, n_units[1]), # n_units[0] -> n_units[1]
l3=L.Linear(None, n_out), # n_units[1] -> n_out
)
以上で、中間層のサイズをコマンドから自由に指定できるようになったはずだ。
長くなってしまったので、動くかどうかは次回に回す。