keras中model.evaluate / model.predict/model.fit

本文详细解析了Keras中model.evaluate与model.predict的功能差异。model.evaluate用于评估模型性能,返回损失值与指标;model.predict则用于生成模型对输入数据的预测结果。同时,深入探讨了model.fit函数的参数及其作用,帮助读者更好地理解模型训练过程。

The  model.evaluate  function predicts the output for the given input and then computes the metrics function specified in the  model.compile  and based on  y_true  and  y_pred  and returns the computed metric value as the output.

The  model.predict  just returns back the  y_pred .

 

model.evaluate函数预测给定输入的输出,然后计算model.compile中指定的metrics函数,并基于y_true和y_pred,并返回计算的度量值作为输出。
model.predict只返回y_pred。

 

model.evaluate 用于评估您训练的模型。它的输出是准确度或损失,而不是对输入数据的预测。

model.predict 实际预测,其输出是目标值,根据输入数据预测。

 

Keras中model.evaluate()返回的是 损失值你选定的指标值(例如,精度accuracy)。

其中制定输出由compile决定,例

        d.compile(optimizer=keras.optimizers.Adam(5e-4),loss='mse',metrics=['acc'])
输出:loss&acc

---------------------------------------------------------------------------------------------------------------------

model.fit

 #fit参数详情
 keras.models.fit(
 self,
 x=None, #训练数据
 y=None, #训练数据label标签
 batch_size=None, #每经过多少个sample更新一次权重,defult 32
 epochs=1, #训练的轮数epochs
 verbose=1, #0为不在标准输出流输出日志信息,1为输出进度条记录,2为每个epoch输出一行记录
 callbacks=None,#list,list中的元素为keras.callbacks.Callback对象,在训练过程中会调用list中的回调函数
 validation_split=0., #浮点数0-1,将训练集中的一部分比例作为验证集,然后下面的验证集validation_data将不会起到作用
 validation_data=None, #验证集
 shuffle=True, #布尔值和字符串,如果为布尔值,表示是否在每一次epoch训练前随机打乱输入样本的顺序,如果为"batch",为处理HDF5数据
 class_weight=None, #dict,分类问题的时候,有的类别可能需要额外关注,分错的时候给的惩罚会比较大,所以权重会调高,体现在损失函数上面
 sample_weight=None, #array,和输入样本对等长度,对输入的每个特征+个权值,如果是时序的数据,则采用(samples,sequence_length)的矩阵
 initial_epoch=0, #如果之前做了训练,则可以从指定的epoch开始训练
 steps_per_epoch=None, #将一个epoch分为多少个steps,也就是划分一个batch_size多大,比如steps_per_epoch=10,则就是将训练集分为10份,不能和batch_size共同使用
 validation_steps=None, #当steps_per_epoch被启用的时候才有用,验证集的batch_size
 **kwargs #用于和后端交互
 )
 
 返回的是一个History对象,可以通过History.history来查看训练过程,loss值等等

fit--原文--https://blog.csdn.net/u011311291/article/details/79900060 

https://blog.csdn.net/qq_34840129/article/details/86307424

Keras是一个高级神经网络API,它可以在TensorFlow、Theano和CNTK等后端运行。在Keras中构建模型的基本步骤如下: 1. 导入所需的库:首先导入`keras`模块和可能需要的数据预处理库,如`numpy`和`tensorflow.keras`。 ```python import numpy as np from tensorflow import keras ``` 2. 数据预处理:加载数据并对其进行预处理,例如划分训练集和测试集,以及标准化或归一化。 ```python (x_train, y_train), (x_test, y_test) = load_data() x_train = x_train / 255.0 # 归一化到[0, 1]范围 x_test = x_test / 255.0 ``` 3. 创建模型结构:使用`Sequential`类创建一个顺序模型,也可以用函数式API或子类化API创建更复杂的模型。例如,简单的卷积神经网络(CNN)可以这样定义: ```python model = keras.Sequential([ keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(img_width, img_height, channels)), keras.layers.MaxPooling2D((2, 2)), keras.layers.Flatten(), keras.layers.Dense(64, activation='relu'), keras.layers.Dense(num_classes, activation='softmax') ]) ``` 4. 编译模型:设置损失函数、优化器和评价指标。 ```python model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) ``` 5. 训练模型:使用训练数据对模型进行训练,并指定验证数据(可选)。 ```python history = model.fit(x_train, y_train, epochs=epochs, validation_data=(x_test, y_test)) ``` 6. 评估和预测:在测试数据上评估模型性能,并进行预测。 ```python test_loss, test_acc = model.evaluate(x_test, y_test) predictions = model.predict(x_test) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值