我在google colab单元格中定义了这个方法/函数
[5]:def lstm_model2(input_features, timesteps, regularizers=regularizers, batch_size=10):
model = Sequential()
model.add(LSTM(15, batch_input_shape=(batch_size, timesteps,
input_features), stateful=True,
recurrent_regularizer=regularizers))
model.add(Dense(1))
model.compile(loss='mae', optimizer='adam')
return model
我想通过argparse将这个方法传递给我正在下一个单元格中执行的脚本。你知道吗
[6]:!python statefulv2.py --model=lstm_model2
我尝试了一种类似于type argument in argparse的方法,比如在statefulv2.py
脚本中定义一个同名的抽象方法,这样argparse.add_argument('--model', help='LSTM model', type=lstm_model2, required=True)
就可以在statefulv2.py
中编写,但这会产生一个无效的参数错误。你知道吗
在argparse中有没有一种简洁的方法将方法作为参数传递?你知道吗
之所以将该方法保留在外部,是因为GoogleColab没有为在单独的文件中更改模型提供单独的编辑器,所以要编辑它来尝试不同的函数。你知道吗
你最好不要试图传递这样的论点。坚持基本类型。另一种方法是将不同的模型存储在
models.py
这样的文件中,例如:等等。你知道吗
在
statefulv2.py
中,您可以拥有:编辑:如果不允许将模型保存到文件。你知道吗
如果必须找到解决方法,可以将代码保存在缓冲区文件中,该文件可以作为
open
类型的参数读入statefulv2.py
。下面是一个演示:在Colab单元格中,将函数代码写入字符串:
在
statefulv2.py
中,您可以:输出(在iPython中,为Colab相应地更改它):
相关问题 更多 >
编程相关推荐