相关疑难解决方法(0)

Keras:制作一个神经网络来找到一个数字的模数

我是一名经验丰富的 Python 开发人员,但在机器学习方面完全是新手。这是我第一次尝试使用 Keras。你能告诉我我做错了什么吗?

我正在尝试制作一个神经网络,它采用二进制形式的数字,并在除以 7 时输出其模数。(我的目标是执行一个非常简单的任务,只是为了看看一切正常。)

在下面的代码中,我定义了网络并用 10,000 个随机数训练它。然后我在 500 个随机数上测试它。

出于某种原因,我得到的准确度约为 1/7,这是您对完全随机算法所期望的准确度,即我的神经网络没有做任何事情。

谁能帮我弄清楚出了什么问题?

import keras.models
import numpy as np
from python_toolbox import random_tools

RADIX = 7

def _get_number(vector):
    return sum(x * 2 ** i for i, x in enumerate(vector))

def _get_mod_result(vector):
    return _get_number(vector) % RADIX

def _number_to_vector(number):
    binary_string = bin(number)[2:]
    if len(binary_string) > 20:
        raise NotImplementedError
    bits = (((0,) * (20 - len(binary_string))) +
            tuple(map(int, binary_string)))[::-1]
    assert len(bits) == 20
    return np.c_[bits]


def get_mod_result_vector(vector):
    return _number_to_vector(_get_mod_result(vector))


def main(): …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras tensorflow

8
推荐指数
2
解决办法
1074
查看次数