精华内容
下载资源
问答
  • model.evaluatemodel.predict 的区别

    万次阅读 多人点赞 2019-03-14 14:28:38
    model.evaluate 输入数据和标签,输出损失和精确度. # 评估模型 loss,accuracy = model.evaluate(X_test,Y_test) print('\ntest loss',loss) print('accuracy',accuracy) model.predict 输入数据,输出...

    model.evaluate

    输入数据标签,输出损失精确度.

    	# 评估模型,不输出预测结果
    	loss,accuracy = model.evaluate(X_test,Y_test)
    	print('\ntest loss',loss)
    	print('accuracy',accuracy)
    

    model.predict

    输入测试数据,输出预测结果
    (通常用在需要得到预测结果的时候)

        #模型预测,输入测试集,输出预测结果
        y_pred = model.predict(X_test,batch_size = 1)
    

    两者差异

    1
    输入输出不同
    model.evaluate输入数据(data)金标准(label),然后将预测结果与金标准相比较,得到两者误差并输出.
    model.predict输入数据(data),输出预测结果
    2
    是否需要真实标签(金标准)
    model.evaluate需要,因为需要比较预测结果与真实标签的误差
    model.predict不需要,只是单纯输出预测结果,全程不需要金标准的参与.

    展开全文
  • model.evaluatemodel.predict

    千次阅读 2021-04-22 22:21:31
    model.evaluate 输入数据和标签,输出损失和精确度. #评估模型,不输出预测结果 loss,accuracy = model.evaluate(X_test,Y_test) print('\ntest loss',loss) print('accuracy',accuracy) model.predict 输入测试数据,...

    model.evaluate

    输入数据和标签,输出损失和精确度.

    #评估模型,不输出预测结果
    loss,accuracy = model.evaluate(X_test,Y_test)
    print('\ntest loss',loss)
    print('accuracy',accuracy)
    

    model.predict

    输入测试数据,输出预测结果
    (通常用在需要得到预测结果的时候)

    #模型预测,输入测试集,输出预测结果
    y_pred = model.predict(X_test,batch_size = 1)
    

    两者差异

    1、输入输出不同
    model.evaluate输入数据(data)和金标准(label),然后将预测结果与金标准相比较,得到两者误差并输出.
    model.predict输入数据(data),输出预测结果
    2、是否需要真实标签(金标准)
    model.evaluate需要,因为需要比较预测结果与真实标签的误差
    model.predict不需要,只是单纯输出预测结果,全程不需要金标准的参与.

    predict(
        x, batch_size=None, verbose=0, steps=None, callbacks=None, max_queue_size=10,
        workers=1, use_multiprocessing=False )
    
    参数: x:输入样本,格式可以是
     - Numpy数组(或类似array的数组)或数组列表(如果模型具有多个输入)。
     - TensorFlow张量或张量列表(如果模型具有多个输入)。
     - tf.data数据集。
     - 生成器或keras.utils.Sequence实例
    
    batch_size:每个梯度更新的样本数。如果未指定,batch_size将默认为32 verbose:模型 steps:宣布预测回合完成之前的步骤总数(样本批次)。忽略默认值None callbacks:预测期间应用的回调函数列表
    
    max_queue_size=10: 仅用于generator或keras.utils.Sequence输入。 生成器队列的最大大小。 如果未指定,max_queue_size将默认为10
    
    workers=1: 仅用于generator或keras.utils.Sequence输入。 使用基于进程的线程时,要启动的最大进程数。 如果未指定,worker将默认为1。如果为0,将在主线程上执行生成器
    
    use_multiprocessing=False: 仅用于generator或keras.utils.Sequence输入。 如果为True,则使用基于进程的线程。 如果未指定,则use_multiprocessing将默认为False

    参考:https://blog.csdn.net/DoReAGON/article/details/88552348
    https://blog.csdn.net/weixin_46649052/article/details/110717737

    展开全文
  • model.evaluate函数预测给定输入的输出,然后计算model.compile中指定的metrics函数,并基于y_true和y_pred,并返回计算的度量值作为输出。 model.predict只返回y_pred。 model.evaluate 用于评估您训练的模型。它的...

    此文为转载,后续会自己补充
    model.evaluate函数预测给定输入的输出,然后计算model.compile中指定的metrics函数,并基于y_true和y_pred,并返回计算的度量值作为输出。
    model.predict只返回y_pred。

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

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

    来源: https://www.quora.com/What-is-the-difference-between-keras-evaluate-and-keras-predict

    在keras中做深度网络预测时,有这两个预测函数model.predict_classes(test) 和model.predict(test),本例中是多分类,标签经过了one-hot编码,如[1,2,3,4,5]是标签类别,经编码后为[1 0 0 0 0],[0 1 0 0 0]…[0 0 0 0 1]

    model.predict_classes(test)预测的是类别,打印出来的值就是类别号
    同时只能用于序列模型来预测,不能用于函数式模型

    predict_test = model.predict_classes(X_test).astype('int')
      inverted = encoder.inverse_transform([predict_test])
      print(predict_test)
      print(inverted[0])
       [1 0 0 ... 1 0 0]
       [2. 1. 1. ... 2. 1. 1.]
    

    model.predict(test)预测的是数值,而且输出的还是5个编码值,不过是实数,预测后要经过argmax(predict_test,axis=1)

    predict_test = model.predict(X_test)
      predict = argmax(predict_test,axis=1)  #axis = 1是取行的最大值的索引,0是列的最大值的索引
      inverted = encoder.inverse_transform([predict])
      print(predict_test[0:3])
      print(argmax(predict_test,axis=1))
      print(inverted)
        [[9.9992561e-01 6.9890179e-05 2.3676146e-06 1.9608513e-06 2.5582506e-07]
         [9.9975246e-01 2.3708738e-04 4.9365349e-06 5.2166861e-06 3.3735736e-07]
         [9.9942291e-01 5.5233808e-04 8.9857504e-06 1.5617061e-05 2.4388814e-07]]
        [0 0 0 ... 0 0 0]
        [[1. 1. 1. ... 1. 1. 1.]]
    

    由于前几个和后几个每个预测值编码都是第一列最大,所以索引是0,反编码后是1

    原文:https://blog.csdn.net/zds13257177985/article/details/80638384

    展开全文
  • 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 compute...

    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

    展开全文
  • model.evaluate 用于评估您训练的模型。它的输出是model的acc和loss,而不是对输入数据的预测。 model.predict 实际预测,输入为test sample,输出为label。 在keras中有两个预测函数model.predict_classes(test...
  • model.evaluatemodel.predict的不同

    万次阅读 2019-09-27 13:37:59
    版权声明:本文为CSDN博主「云端浅蓝」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本...model.evaluate 输入数据和标签,输出损失和精确度. # 评估模型,不输出预测结果 loss,accuracy...
  • 聊一聊model.fit()与model.evaluate()指标值不同的坑 提示:最近在使用tensorflow.keras进行回归模型的训练,遇到了一点问题如下。 一、fit()训练过程的值与model.evaluate()的值相差很大 1.部分训练过程如下 代码...
  • model.evaluate 函数原型: evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None) 输入数据和标签,输出损失值和选定的指标值(如精确度accuracy) # 评估模型,不输出预测...
  • mode.evaluate 官方声明:传送门 输入参数: 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) ...
  • The model.evaluatefunction predicts the output for the given input and then computes the metrics function specified in the model.compileand based on y_trueand y_pred and returns the compute...
  • 报错处:loss,accuracy = model.evaluate(x_valid,y_valid); x_valid的维度为ndarray(624,50,5),y_valid为list(624),报错: TypeError: 'numpy.float64' object is not iterable ![图片说明]...
  • Keras官方文档: ...Keras中model.evaluate()返回的是 损失值和你选定的指标值(例如,精度accuracy)。   evaluate evaluate(x=None, y=None, batch_size=None, verbose=1, sample_weight=None, st...
  • 报错处:loss,accuracy = model.evaluate(testX,testPredict); testX为ndarray(48,1,1); testPredict为ndarray(48,1); 不知道为什么报错TypeError: 'numpy.float64' object is not iterable,求解决,另外想知道...
  • ``` x_train, x_test, y_...[loss, sgd] = model.evaluate(test_data, y_test, verbose=1) ``` 最后一步不知道哪出了问题。。test_data, y_test都是dataframe啊 TypeError Traceback (most recent call last) ...
  • model.evaluate(x_test_scaled, y_test)进度条显示异常 使用的是tensorflow2.0 在jupternotebook中的显示如下
  • test_loss, test_acc = model.evaluate(test_images, test_labels) 可以看到这个代码,很符合model测试的逻辑,但是他依然会报错,我看到其他文章也有这样的代码,不清楚他们会不会报错,反正我这是出现了Runtime...
  • 在train set 中设置了sample weight进行训练,在评估集上 设置不同的sample_weight 进行model.evaluate 时,得到AUC 不同。 这与 我想的不一样:sample weight 不参与评估 原因分析 首先 根据tensorflow 官网的代码...
  • every blog every motto: one today is worth two tomorrows. ...model.evaluate(x_test_scaled,y_test) 1. 解决办法 其实也很简单只要加一个参数就行,如下。 model.evaluate(x_test_scaled,y_tes...
  • model.evaluate(x_test_scaled, y_test) 解决办法 其实也很简单只要加一个参数就行,如下。 model.evaluate(x_test_scaled,y_test,verbose=0) verbose=0 不输出“=” berbose=1 输出”=“,程序执行进度 ...
  • https://stackoverflow.com/questions/44843581/what-is-the-difference-between-model-fit-an-model-evaluate-in-keras
  • model.compile()参数问题 参照https://www.pythonheidong.com/blog/article/297494/fe6df6ec41d3261f30b2/ 在compile()里增加metrics=[‘accuracy’]解决
  • keras中在model.fit和model.evalution中都含有verbose
  • ) model.fit(train_images, train_labels, epochs=2) loss, accuracy = model.evaluate(test_images, test_labels, verbose=2) print('loss: {:.2f} accuracy: {:.2f}% '.format(loss, accuracy * 100)) model.save...
  • ]) model.compile(optimizer= ‘rmsprop’, loss= ‘categorical_crossentropy’) model.fit(x_train,y_train,epochs=1) #x_test = x_test.flatten() #y_test = y_test.flatten() loss,accuracy = model.evaluate(x_...
  • 在模型训练和测试(包括evaluate或test)两个过程中,需要添加相应的代码,包括 model.trian()和model.eval(),为什么一定要添加,两者有什么区别? model.train() :启用 BatchNormalization 和 Dropout model.eval()...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,067
精华内容 17,226
关键字:

model.evaluate