一、简单的代码
import tensorflow as tf import keras import numpy as np #使用keras建立模型 model = keras.Sequential([keras.layers.Dense(units=1,input_shape=[1])]) #为keras模型添加优化器和损失函数 model.compile(optimizer='sgd',loss='mean_squared_error') xs=np.array([-1.0,0.0,1.0,2.0,3.0,4.0],dtype=float) ys=np.array([-3.0,-1.0,1.0,3.0,5.0,7.0],dtype=float) #模型训练model.fit(训练输入数据x,训练输出数据y,训练次数) model.fit(xs,ys,epochs=500) #用模型预测输出值 print(model.predict([10.0]))
二、 Sequential 顺序模型
1、介绍:最简单的模型是 Sequential 顺序模型,它由多个网络层线性堆叠。对于更复杂的结构,你应该使用 Keras 函数式 API,它允许构建任意的神经网络图。
2、建立layer
#model.add来追加层 #稠密的,就是把内部定义的信息“沾到一起”形成一层 model.add(Dense(units=64,activation='relu',input_dim=100)) model.add(Dense(units=10,activation='softmax'))
keras.layers.Dense(units, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None)
参数说明如下:
-
units:该层有几个神经元
-
activation:该层使用的激活函数
-
use_bias:是否添加偏置项
-
kernel_initializer:权重初始化方法
-
bias_initializer:偏置值初始化方法
-
kernel_regularizer:权重规范化函数
-
bias_regularizer:偏置值规范化方法
-
activity_regularizer:输出的规范化方法
-
kernel_constraint:权重变化限制函数
-
bias_constraint:偏置值变化限制函数
3、配置学习参数
#配置学习过程 model.compile(loss="categorical_crossentropy",optimizer='sgd',metrics='accuracy') model.compile(loss=keras.losses.categorical_crossentropy,optimizer=keras.optimizer.SGD(lr=0.01,momentu=0.9, nesterov=True))
4、预测与判断精度
evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None, callbacks=None, max_queue_size=10, workers=1, use_multiprocessing=False)
- x:输入数据
- y:输入标签
- batch_size:批次大小
- verbose:0不显示进度条,1为显示进度条
- sample_weight:测试样本的可选Numpy权重数组,用于对损失函数加权
- steps:样本批次
- callbacks:评估期间需要应用的回调列表
- max_queue_size:生成器队列的最大大小
- workers:执行期间使用的进程数
- use_multiprocessing:如果为True,则使用基于进程的线程
返回:
- 损失值:网络在训练数据上的损失(预测值和实际值之间的差距),该值和编译模型时选择的损失有关
- 精度:准确率(成功数量与总数据量的比值)
返回格式:[‘loss’, ‘accuracy’]
predict(x, batch_size=None, verbose=0, steps=None, callbacks=None, max_queue_size=10, workers=1, use_multiprocessing=False)
- x:输入数据
- batch_size:批次大小
- verbose:0不显示进度条,1为显示进度条
- sample_weight:测试样本的可选Numpy权重数组,用于对损失函数加权
- steps:样本批次
- callbacks:评估期间需要应用的回调列表
- max_queue_size:生成器队列的最大大小
- workers:执行期间使用的进程数
- use_multiprocessing:如果为True,则使用基于进程的线程
返回:
对输入数据的预测值–Y



