【问题标题】:What is the best way to represent ip addresses in TensorFlow?在 TensorFlow 中表示 ip 地址的最佳方式是什么?
【发布时间】:2017-12-14 19:39:32
【问题描述】:

我正在查看https://www.tensorflow.org/api_docs/python/tf/feature_column,但我不确定我应该代表我的 IP 地址和端口的类型。基于 https://github.com/L0SG/DDPG_NIDS/blob/master/main.py,我可以删除点并插入结果地址,但我不确定这是否是最好的方法。谁有更好的建议?

编辑:另外我应该如何在 TensorFlow 中输入 UTC 格式的时间和日期?

【问题讨论】:

    标签: python python-2.7 tensorflow ip ip-address


    【解决方案1】:

    这取决于您打算如何使用该地址。您是否正在考虑字段之间的任何关系?例如,1.2.3.4 是否应该与 1.2.3.5 “接近”,或者它们是完全不同的地址?

    如果每个地址都是不同的,你也可以让它们成为字符串。如果您需要接近性,我建议您将它们转换为四个单独的整数特征,或单个 32 位整数——同样,这取决于您建模中的语义。


    补充问题的更新

    同样的想法:您打算如何使用日期?我认为最灵活的方法是将日期转换为纪元(标准时间点后的秒数),并使用该 64 位整数作为特征值。

    【讨论】:

    • 啊,你是说我可以散列它,因为亲近对我来说并不重要?
    • 当然。事实上,如果亲近无关紧要,为什么还要花时间费心去散列呢?
    • IP 空间有点大。所以我想通过 tf.feature_column.numeric_column 将其视为连续列。如果我不使用 categorical_column_with_hash_bucket(...),我应该使用哪个特定函数?
    • 我在想直接numeric_column。但是,我认为您最近的评论是一个很好的观点:对于稀疏的 IP 地址,散列可能会为您提供相同的性能并节省一点空间,而且只需很少的时间。与将每个 IP 地址转换为其对应的 32 位整数相比,这将减少编码并且更易于维护。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多