所以作为一个有趣的项目,我一直在搞乱TensorFlow API(不幸的是在Java中......但我应该能够得到一些结果)。我的第一个目标是开发2D点云过滤模型。所以我编写的代码生成224x172分辨率的随机云,计算邻居密度滤波器的结果,并存储两者(见下图)。
所以基本上我已经为输入和预期输出生成了数据,这可以根据大量数据集的需要进行。
我将输入和输出数组都存储为224x172二进制数组(0表示索引没有点,1表示该索引处的点)。所以我的输入和输出都是224x172。此时,我不确定如何将我的输入转换为我的预期结果。我不确定如何权衡我的云的每个“像素”,或者如何“教”程序预期的结果。对于我的特定情景是否可能有任何建议/指导,我们将不胜感激!
请不要对我太过刻薄......在机器学习方面,我是一个完整的菜鸟。
答案 0 :(得分:0)
想象一下,Tensorflow是一组构建模块(如LEGO),可以构建机器学习模型。在构建模型之后,可以对其进行训练和评估
所以基本上你的问题可以分为三个步骤:
我是机器学习的新手。请指导我如何选择适合任务的型号
我是张力流的新手。我有模型的想法(见1),我想通过Tensorflow构建它
我是Java的张量流API新手。我知道如何使用tensorflow(2)构建模型,但我陷入了Java。
这听起来很吓人,但实际上并不是太糟糕。
我建议你做以下计划:
1.您需要查看机器学习模型以找到适合您情况的模型。所以你需要问自己:什么是可用于云过滤的模型?
基本上,你真的需要一些机器学习模型吗?你为什么不使用简单的数学公式?
这是你可能会问自己的问题。
好吧,假设你找到了一些模型。例如,您发现了一篇描述能够解决您的任务的神经网络的论文。然后转到下一步
2. Tensorflow有很多例子和代码片段。所以你甚至可以
找到已实现模型的代码。
不好的是,大多数代码示例和API都是基于Python的。
但是当你想进入机器学习时,我建议你学习Python。它很容易进入。在科学界使用python是很常见的,因为它允许不浪费时间在包装器,配置等上(如Java所需)。我们刚开始从脚本的第一行解决我们的任务。
正如我最初讲到的关于张量流和乐高相似性的问题,我想补充说张量流有更多的高级增加。所以你使用的不是构建块,而是使用某种层块。
像tflearn这样的东西。如果你没有深入的数学或机器学习背景,这是非常好的。它允许以非常简单和易懂的方式构建机器学习模型。那么你需要添加一些神经网络层吗?这个给你。而这一切都没有复杂的低级张量操作。
缺点是您无法从Java加载tflearn模型。
无论如何,我们假设,在这一步结束时,您可以构建模型,训练模型并评估模型和预测质量。
3.因此,您拥有机器学习模型,了解Tensorflow机制,如果您仍需要使用Java,那么应该更容易。
我注意到,您将无法从Java加载tflearn模型。您可以尝试使用jython直接从Java调用python的函数,但我还没有尝试过
在这种方式(1-3)你肯定会有更多的问题。所以欢迎来到SO。