上下文:我在不同的ParameterVectorLCA中使用了projects,这些LCA可能是在不同的projects中生成的。我已经存储了生成的params。我想确保params的顺序是一样的。
据我所知:
inputs和outputsactivity_dict和bio_dict可以告诉我们这些inputs和outputs指的是什么supply arrays和bio_dict,可以将activity_dict和bio_dict从一个项目重新排序到另一个项目。我不知道的是:
activity_dict和bio_dict对于两个LCA都是相同的,那么我的params的顺序是否是相同的呢?activity_dict和bio_dict不一样,我可以重新订购我的params吗?我的策略是:tech_params和bio_params中的tech_params和bio_params数字更改为参考LCA的数字(通过使用activity_dict和bio_dict)。tech_param和bio_param中每个参数的字符串表示形式。tech_param和bio_param中找到相应的参数字符串表示的索引。这样能行吗?有更简单的方法吗?
发布于 2017-04-26 07:39:25
当处理后时,项目中的参数数组总是按相同的顺序排序(您可以看到排序时使用的字段)。此外,数组连接到例如tech_params的顺序在一个项目中是相同的(数组是基于他们的文件名排序的)。最后,activity_dict等的构造方式也保证了始终如一。但是,正如您所说的,input和output值在不同的项目之间可能完全不同。
是。
更难对付。
这不起作用,因为activity_dict从键到矩阵列;input中的值是mapping值。因此,您需要访问“映射”才能使用此策略。
到目前为止,最简单的方法是重新排序这两个param数组,忘记mapping值(每个项目可能有所不同),而是使用活动键(我假设它们是相同的)。然后,您可以轻松地按输入键、输出键、数量等对每个数组进行排序(请参阅dtype_fields_order;有相同的输入和输出的重复交换),并确信您得到了相同的订单。
这将是对实用程序库的一个很好的补充,但是一定要首先编写测试!
https://stackoverflow.com/questions/43620285
复制相似问题