代码实现单层感知机的与门,使用keras。 要求只提交py文件。
时间: 2024-09-23 10:16:17 浏览: 16
为了在Keras中实现一个简单的单层感知机(Perceptron),我们首先需要导入所需的库,创建模型结构,然后编写训练函数。这里是一个简化的例子,仅包含一个输入节点、一个隐藏节点和一个输出节点,使用了sigmoid激活函数作为"与"门的模拟。
```python
# 导入必要的库
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import SGD
# 创建单层感知机模型
def create_perceptron_model(input_dim):
model = Sequential()
# 添加一个神经元,使用sigmoid激活函数,模拟"与"门逻辑
model.add(Dense(1, input_dim=input_dim, activation='sigmoid'))
return model
# 定义输入数据
input_data = np.random.rand(100, input_dim) # 假设输入维度是input_dim
target_data = (input_data < 0.5).astype(int) # 假设目标是一系列的二进制表示
# 初始化权重随机值
model = create_perceptron_model(input_dim)
sgd = SGD(lr=0.01)
# 编译模型
model.compile(loss='binary_crossentropy', optimizer=sgd, metrics=['accuracy'])
# 训练模型
model.fit(input_data, target_data, epochs=100, verbose=0)
# 示例:预测新的输入
new_input = np.array([[0.2, 0.3]])
prediction = model.predict(new_input)
print(f"新输入({new_input})的预测结果:{prediction[0][0]}")
#