我是一名经验丰富的 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)