我正在尝试运行Android SDK提供的apkanalyzer工具(在Sdk / tool / bin下),但无法使其正常运行。我知道我也可以通过AndroidStudio使用此工具,但是我需要自动进行apk分析以涵盖很多APK。因此,我遵循了这个https://developer.android.com/studio/command-line/apkanalyzer的用法。
无论如何,当我尝试启动apkanalyzer(例如apkanalyzer apk摘要APKname.apk)时,它会给出以下异常:
线程“主”中的异常java.lang.NoClassDefFoundError:com.android.repository.api.SchemaModule $ SchemaModuleVersion。(SchemaModule.java:156)上的javax / xml / bind / annotation / XmlSchema。com.android.repository.api上的(SchemaModule.java:156)。 com.android.sdklib.repository.AndroidSdkHandler中的SchemaModule。 .android.tools.apk.analyzer.ApkAnalyzerCli.main(ApkAnalyzerCli.java:129)造成原因:java.lang.ClassNotFoundException:java.base / jdk.internal.loader.BuiltinClassLoader上的javax.xml.bind.annotation.XmlSchema。 java.base / jdk.internal.loader.ClassLoaders $ AppClassLoader.loadClass(ClassLoaders.java:190)处的loadClass(BuiltinClassLoader.java:583)在java.base / java.lang处。ClassLoader.loadClass(ClassLoader.java:499)...还有5个
问题出在哪里?
我正在 TensorFlow Federated (TFF) 中测试一些算法。在这方面,我想在具有不同“级别”的数据异质性(即非独立同分布性)的相同联合数据集上测试和比较它们。
因此,我想知道是否有任何方法可以以自动或半自动的方式控制和调整特定联合数据集中的非独立同分布的“级别”,例如通过 TFF API 或传统的 TF API (可能在数据集实用程序内部)。
更实际一些:例如,TFF 提供的 EMNIST 联合数据集有 3383 个客户端,每个客户端都有手写字符。然而,这些本地数据集在本地示例的数量和表示的类方面似乎相当平衡(所有类或多或少都在本地表示)。如果我想要一个联合数据集(例如,从 TFF 的 EMNIST 数据集开始),即:
tff.simulation.datasets.build_single_label_dataset 这就是这里文档的目的吗?如果是这样,我应该如何从联合数据集中使用它,例如 TFF 已经提供的数据集?我应该如何在 TFF 框架内继续准备具有这些特征的联合数据集?
我应该手工做所有的事情吗?或者你们中的一些人对自动化这个过程有什么建议吗?
另一个问题:在 Hsu 等人的论文“Measuring the Effects of Non-Identical Data Distribution for Federated Visual Classification”中,他们利用狄利克雷分布来合成一组不同的客户,并使用浓度参数控制客户端之间的一致性。这似乎是一种难以调整的方法来生成具有不同异质性水平的数据集。任何有关如何在 TFF 框架内或仅在 TensorFlow (Python) 中(考虑 EMNIST 等简单数据集)实施此策略(或类似策略)的建议也将非常有用。
万分感谢。