ML:如何创建简单的机器学习模型

时间:2019-09-09 20:21:22

标签: tensorflow machine-learning keras

我是机器学习的新手。我尝试制作最简单的模型,但与所有“ hello world”教程不同。

我没有很大的数据集,所以我决定训练该模型,该模型将确定输入数字是奇数还是偶数。


# create a model that defines if number is odd or even
def generate_data(length, is_random=False):
    res = []
    for i in range(0, length):
        number = i if not is_random else random.randrange(0, 99999)

        if number % 2 != 0:
            res.append([number, 1])
        else:
            res.append([number, 0])
    return res


train_data = generate_data(5000, is_random=True)

data_set = np.array(train_data)
random_number = data_set[:, 0:1]
is_random_number_even = data_set[:, 1]

print('X: {}'.format(random_number))
print('Y: {}'.format(is_random_number_even))

model = Sequential()
model.add(Dense(3, input_dim=1, activation='relu'))
model.add(Dense(3, activation='sigmoid'))
model.add(Dense(4, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))

# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# fit the keras model on the dataset
model.fit(random_number, is_random_number_even, epochs=100, batch_size=30)

_, accuracy = model.evaluate(random_number, is_random_number_even)
print('Accuracy: %.2f' % (accuracy*100))

在此代码中,我生成输入数据来训练模型,创建一个具有2个内部层且节点数量不同的模型(在教程中编写,每层没有层数和注释的规则),然后尝试训练它。

问题是精度始终约为50%,有时在更改每个图层的层数和节点数时,我的准确度为52%,但从未更改。似乎尽管有很多关于该主题的文章,但我仍然缺少一些东西。

有人可以告诉我这是怎么回事,什么是正确的前进方向?

0 个答案:

没有答案