【发布时间】:2020-06-27 20:58:53
【问题描述】:
我使用 python 拟合了以下模型:
history_1 = model.fit(x_train, y_train, batch_size=32, epochs=10, verbose=True, validation_split=.1)
loss_1, accuracy_1 = model.evaluate(x_test, y_test, verbose=False)
然后下一行代码就是
history_2 = model.fit(x_train, y_train, batch_size=60, epochs=10, verbose=True, validation_split=.1)
loss_2, accuracy_2 = model.evaluate(x_test, y_test, verbose=False)
我宁愿把它放在一个函数中,指定不同的参数并指示一个 num = 1 或 2,然后将其添加到输出/对象名称中
例如
def XXX(s = , e = , num = )
其中 s 是批量大小,e 是 epochs,num 被放置在 history_num、loss_num 和 accuracy_num 旁边>
我来自 SAS 背景,我们将其指定为 history_%eval(&num)
编辑:如果你想像我一样做,那么下面的内容绝对值得一读http://stupidpythonideas.blogspot.com/2013/05/why-you-dont-want-to-dynamically-create.html
【问题讨论】:
-
动态创建名称确实是个坏主意,使用适当的数据结构如列表或字典等来存储对象。
-
你在 scikit-learn 中尝试过Gridsearch 吗?
-
@buran 完全同意,最后走了那条路。然后只是想知道python是否可以做类似于SAS的事情。
-
如果我理解正确,接受的答案并不完全是您想要的,因为名称是“硬编码”的,不像您的 SAS 示例那样动态......看看这个stupidpythonideas.blogspot.com/2013/05/…
-
基本上;但你分享的这个链接更好。 1)它展示了如何动态创建变量和 2)为什么你不应该这样做。谢谢。很好读
标签: python loops dynamic naming