1、什么是欠拟合,什么是过拟合?
2、神经网络模型的正则化方法有哪些?
3、神经网络可以拟合线性函数吗?可以拟合非线性函数吗?
4、举例说明,神经网络模型是如何拟合二输入的与运算的。
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者
Theano 作为后端运行。Keras 的开发重点是支持快速的实验。
能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
如果你在以下情况下需要深度学习库,请使用 Keras:
允许简单而快速的原型设计(由于用户友好,高度模块化,可扩展性)。
同时支持卷积神经网络和循环神经网络,以及两者的组合。
在 CPU 和 GPU 上无缝运行。
Keras 兼容的 Python 版本: Python 2.7-3.6。
并且,官方推荐tensorflow搭配keras一起使用。
利用keras搭建全连接神经网络分为以下几步:
1.import
2.train,test
3.model
4.model.compile
5.model.fit
6.model.summary
以简单识别鸢尾花数据集为例来讲解各步骤详细信息:
1.import 导入相关库和数据集
import tensorflow as tf
from tensorflow import keras
from sklearn.datasets import load_iris
import numpy as np
from sklearn.model_selection import train_test_split
2. 将data数据和target标签数据进行切分
# 导入数据
x= load_iris().data
y= load_iris().data
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2)
3.model 这一步是很关键的一步,利用keras.models.Sequential或者
tf.keras.models.Sequential(这俩其实是一个东西,如果你导入的时候用的是
from tensorflow import keras,那么就写第一个,如果只导入了tensorflow,
就用第二个写法)构建训练模型,最简单的加一个4个神经元的网络.
model = tf.keras.models.Sequential([ keras.layers.Dense(4,activation=tf.nn.relu)])
4.model.compile model.compile()方法用于在配置训练方法时,告知训练时用的优化器、损失函数和准确率评测标准
model.compile(optimizer='sgd',loss='mean_squared_error')
5.model.fit 拟合训练数据
model.fit(x_train,y_train,epochs=500)
6.model.summary
完整代码为:
import tensorflow as tf
from tensorflow import keras
from sklearn.datasets import load_iris
import numpy as np
from sklearn.model_selection import train_test_split
# 导入数据
x= load_iris().data
y= load_iris().data
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2)
model = tf.keras.models.Sequential([
keras.layers.Dense(4,activation=tf.nn.relu)
])
model.compile(optimizer='sgd',loss='mean_squared_error')
model.fit(x_train,y_train,epochs=500)
result = model.predict(x_test)
model.summary()
print(result)