Keras中Callback函数的使用

29 篇文章 0 订阅
订阅专栏
14 篇文章 1 订阅
订阅专栏

回调函数Callbacks

回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程中网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit()中,即可在给定的训练阶段调用该函数集中的函数。

【Tips】虽然我们称之为回调“函数”,但事实上Keras的回调函数是一个类,回调函数只是习惯性称呼

Callback

例子No.1:官网示例 

保存训练过程中最好的模型

from __future__ import print_function
import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
from keras.callbacks import TensorBoard
import matplotlib.pyplot as plt

np.random.seed(1671)  # for reproducibility

# network and training
NB_EPOCH = 20
BATCH_SIZE = 128
VERBOSE = 1
NB_CLASSES = 10   # number of outputs = number of digits
OPTIMIZER = SGD() # optimizer, explained later in this chapter
N_HIDDEN = 128
VALIDATION_SPLIT=0.2 # how much TRAIN is reserved for VALIDATION

# data: shuffled and split between train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()

#X_train is 60000 rows of 28x28 values --> reshaped in 60000 x 784
RESHAPED = 784
#
X_train = X_train.reshape(60000, RESHAPED)
X_test = X_test.reshape(10000, RESHAPED)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')

# normalize
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, NB_CLASSES)
Y_test = np_utils.to_categorical(y_test, NB_CLASSES)

# M_HIDDEN hidden layers
# 10 outputs
# final stage is softmax

model = Sequential()
model.add(Dense(N_HIDDEN, input_shape=(RESHAPED,)))
model.add(Activation('relu'))
model.add(Dense(N_HIDDEN))
model.add(Activation('relu'))
model.add(Dense(NB_CLASSES))
model.add(Activation('softmax'))
model.summary()

#model.load_weights("weight_bst.hdf5")

model.compile(loss='categorical_crossentropy',
              optimizer=OPTIMIZER,
              metrics=['accuracy'])

#保存.fit()过程中最好的模型
checkpoint=ModelCheckpoint("/weights.hdf5",verbose=1,save_best_only=True)

history = model.fit(X_train, Y_train,
                    batch_size=BATCH_SIZE, epochs=5,
                    verbose=VERBOSE, validation_split=VALIDATION_SPLIT,
                    callbacks=[checkpoint])

 

例子No.2:保存每一个改进CheckPoint模型

应用Checkpoint时,应在每次训练中观察到改进时输出模型权重。

Checkpoint设置成当验证数据集的分类精度提高时保存网络权重(monitor=’val_acc’ and mode=’max’)。权重存储在一个包含评价的文件中(weights-improvement – { val_acc = .2f } .hdf5)。

from __future__ import print_function
import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
from keras.callbacks import TensorBoard
import matplotlib.pyplot as plt

np.random.seed(1671)  # for reproducibility

# network and training
NB_EPOCH = 20
BATCH_SIZE = 128
VERBOSE = 1
NB_CLASSES = 10   # number of outputs = number of digits
OPTIMIZER = SGD() # optimizer, explained later in this chapter
N_HIDDEN = 128
VALIDATION_SPLIT=0.2 # how much TRAIN is reserved for VALIDATION

# data: shuffled and split between train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()

#X_train is 60000 rows of 28x28 values --> reshaped in 60000 x 784
RESHAPED = 784
#
X_train = X_train.reshape(60000, RESHAPED)
X_test = X_test.reshape(10000, RESHAPED)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')

# normalize
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, NB_CLASSES)
Y_test = np_utils.to_categorical(y_test, NB_CLASSES)

# M_HIDDEN hidden layers
# 10 outputs
# final stage is softmax

model = Sequential()
model.add(Dense(N_HIDDEN, input_shape=(RESHAPED,)))
model.add(Activation('relu'))
model.add(Dense(N_HIDDEN))
model.add(Activation('relu'))
model.add(Dense(NB_CLASSES))
model.add(Activation('softmax'))
model.summary()

#model.load_weights("weight_bst.hdf5")

model.compile(loss='categorical_crossentropy',
              optimizer=OPTIMIZER,
              metrics=['accuracy'])

#保存.fit()训练过程中,精确度提高的模型
filepath="weights-improvement-{epoch:02d}-{val_acc:.2f}.hdf5"
checkpoint=ModelCheckpoint(filepath,monitor='val_acc',verbose=1,save_best_only=True,mode='max')

history = model.fit(X_train, Y_train,
                    batch_size=BATCH_SIZE, epochs=5,
                    verbose=VERBOSE, validation_split=VALIDATION_SPLIT,
                    callbacks=[checkpoint])

程序运行结果: 

在epoch=5次训练中,val_acc均提高,所以每次都保存了一个新的模型

 

例子No.3:保存最佳的Checkpoint模型

如果验证精度提高的话,一个更简单的Checkpoint策略是将模型权重保存到相同的文件中。

这可以使用上述相同的代码轻松完成,并将输出文件名更改为固定(不包括评价或次数的信息)。

在这种情况下,只有当验证数据集上的模型的分类精度提高到到目前为止最好的时候,才会将模型权重写入文件“weights.best.hdf5”。

 

from __future__ import print_function
import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
from keras.callbacks import TensorBoard
import matplotlib.pyplot as plt

np.random.seed(1671)  # for reproducibility

# network and training
NB_EPOCH = 20
BATCH_SIZE = 128
VERBOSE = 1
NB_CLASSES = 10   # number of outputs = number of digits
OPTIMIZER = SGD() # optimizer, explained later in this chapter
N_HIDDEN = 128
VALIDATION_SPLIT=0.2 # how much TRAIN is reserved for VALIDATION

# data: shuffled and split between train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()

#X_train is 60000 rows of 28x28 values --> reshaped in 60000 x 784
RESHAPED = 784
#
X_train = X_train.reshape(60000, RESHAPED)
X_test = X_test.reshape(10000, RESHAPED)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')

# normalize
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, NB_CLASSES)
Y_test = np_utils.to_categorical(y_test, NB_CLASSES)

# M_HIDDEN hidden layers
# 10 outputs
# final stage is softmax

model = Sequential()
model.add(Dense(N_HIDDEN, input_shape=(RESHAPED,)))
model.add(Activation('relu'))
model.add(Dense(N_HIDDEN))
model.add(Activation('relu'))
model.add(Dense(NB_CLASSES))
model.add(Activation('softmax'))
model.summary()

#model.load_weights("weight_bst.hdf5")

model.compile(loss='categorical_crossentropy',
              optimizer=OPTIMIZER,
              metrics=['accuracy'])

#保存训练过程中最好的模型
filepath="weight_bst.hdf5"
checkpoint=ModelCheckpoint(filepath,monitor='val_acc',verbose=1,save_best_only=True,mode='max')

history = model.fit(X_train, Y_train,
                    batch_size=BATCH_SIZE, epochs=5,
                    verbose=VERBOSE, validation_split=VALIDATION_SPLIT,
                    callbacks=[checkpoint)])
'''


score=model.evaluate(X_test,Y_test,verbose=VERBOSE)
print(score)
'''

程序运行结果:

这是一个在你的实验中需要经常用到的方便的Checkpoint策略。它将确保你的最佳模型被保存,以便稍后使用。它避免了输入代码来手动跟踪,并在训练时序列化最佳模型。

 

例子No.4:加载之前保存过的Checkpoint模型

Checkpoint只包括模型权重。它假定你了解网络结构。这也可以序列化成JSON或YAML格式。

在下面的示例中,模型结构是已知的,并且最好的权重从先前的实验中加载,然后存储在weights.best.hdf5文件的工作目录中。

那么将该模型用于对整个数据集进行预测。

from __future__ import print_function
import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
from keras.callbacks import TensorBoard
import matplotlib.pyplot as plt

np.random.seed(1671)  # for reproducibility

# network and training
NB_EPOCH = 20
BATCH_SIZE = 128
VERBOSE = 1
NB_CLASSES = 10   # number of outputs = number of digits
OPTIMIZER = SGD() # optimizer, explained later in this chapter
N_HIDDEN = 128
VALIDATION_SPLIT=0.2 # how much TRAIN is reserved for VALIDATION

# data: shuffled and split between train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()

#X_train is 60000 rows of 28x28 values --> reshaped in 60000 x 784
RESHAPED = 784
#
X_train = X_train.reshape(60000, RESHAPED)
X_test = X_test.reshape(10000, RESHAPED)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')

# normalize
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, NB_CLASSES)
Y_test = np_utils.to_categorical(y_test, NB_CLASSES)

# M_HIDDEN hidden layers
# 10 outputs
# final stage is softmax

model = Sequential()
model.add(Dense(N_HIDDEN, input_shape=(RESHAPED,)))
model.add(Activation('relu'))
model.add(Dense(N_HIDDEN))
model.add(Activation('relu'))
model.add(Dense(NB_CLASSES))
model.add(Activation('softmax'))
model.summary()

#加载模型
model.load_weights("weight_bst.hdf5")

model.compile(loss='categorical_crossentropy',
              optimizer=OPTIMIZER,
              metrics=['accuracy'])


score=model.evaluate(X_test,Y_test,verbose=VERBOSE)
print(score)

 

 例子:LearningRateScheduler调整学习率

from keras.callbacks import LearningRateScheduler
def scheduler(epoch):
    if epoch % 100 == 0 and epoch != 0:
        lr = K.get_value(model.optimizer.lr)
        K.set_value(model.optimizer.lr, lr * 0.1)
        print("lr changed to {}".format(lr * 0.1))
    return K.get_value(model.optimizer.lr)
 
reduce_lr = LearningRateScheduler(scheduler)
model.fit(train_x, train_y, batch_size=32, epochs=5, callbacks=[reduce_lr])

 

例子:ReduceLROnPlateau自动减少学习率 

from keras.callbacks import ReduceLROnPlateau
reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.2,patience=5, min_lr=0.001)
model.fit(X_train, Y_train, callbacks=[reduce_lr])

 

例子:CSVLoggerb保存训练结果 

csv_logger = CSVLogger('training.log')
model.fit(X_train, Y_train, callbacks=[csv_logger])

 

例子:轻量级自定义回调函数LambdaCallback

# Print the batch number at the beginning of every batch.
batch_print_callback = LambdaCallback(
    on_batch_begin=lambda batch,logs: print(batch))
 
# Plot the loss after every epoch.
import numpy as np
import matplotlib.pyplot as plt
plot_loss_callback = LambdaCallback(
    on_epoch_end=lambda epoch, logs: plt.plot(np.arange(epoch),
                      logs['loss']))
 
# Terminate some processes after having finished model training.
processes = ...
cleanup_callback = LambdaCallback(
    on_train_end=lambda logs: [
    p.terminate() for p in processes if p.is_alive()])
 
model.fit(...,
      callbacks=[batch_print_callback,
         plot_loss_callback,
         cleanup_callback])

 

 例子:查看TensorBoard监控

from __future__ import print_function
import numpy as np
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.optimizers import SGD
from keras.utils import np_utils
from keras.callbacks import ModelCheckpoint
from keras.callbacks import TensorBoard
import matplotlib.pyplot as plt

np.random.seed(1671)  # for reproducibility

# network and training
NB_EPOCH = 20
BATCH_SIZE = 128
VERBOSE = 1
NB_CLASSES = 10   # number of outputs = number of digits
OPTIMIZER = SGD() # optimizer, explained later in this chapter
N_HIDDEN = 128
VALIDATION_SPLIT=0.2 # how much TRAIN is reserved for VALIDATION

# data: shuffled and split between train and test sets
(X_train, y_train), (X_test, y_test) = mnist.load_data()

#X_train is 60000 rows of 28x28 values --> reshaped in 60000 x 784
RESHAPED = 784
#
X_train = X_train.reshape(60000, RESHAPED)
X_test = X_test.reshape(10000, RESHAPED)
X_train = X_train.astype('float32')
X_test = X_test.astype('float32')

# normalize
X_train /= 255
X_test /= 255
print(X_train.shape[0], 'train samples')
print(X_test.shape[0], 'test samples')

# convert class vectors to binary class matrices
Y_train = np_utils.to_categorical(y_train, NB_CLASSES)
Y_test = np_utils.to_categorical(y_test, NB_CLASSES)

# M_HIDDEN hidden layers
# 10 outputs
# final stage is softmax

model = Sequential()
model.add(Dense(N_HIDDEN, input_shape=(RESHAPED,)))
model.add(Activation('relu'))
model.add(Dense(N_HIDDEN))
model.add(Activation('relu'))
model.add(Dense(NB_CLASSES))
model.add(Activation('softmax'))
model.summary()


model.compile(loss='categorical_crossentropy',
              optimizer=OPTIMIZER,
              metrics=['accuracy'])


history = model.fit(X_train, Y_train,
                    batch_size=BATCH_SIZE, epochs=5,
                    verbose=VERBOSE, validation_split=VALIDATION_SPLIT,
                    callbacks=[TensorBoard(log_dir="./log")])


score=model.evaluate(X_test,Y_test,verbose=VERBOSE)
print(score)

 在命令行输入命令:

运行结果:

 

 

编写自己的回调函数

我们可以通过继承keras.callbacks.Callback编写自己的回调函数,回调函数通过类成员self.model访问访问,该成员是模型的一个引用。

这里是一个简单的保存每个batch的loss的回调函数

class LossHistory(keras.callbacks.Callback):
    def on_train_begin(self, logs={}):
        self.losses = []
 
    def on_batch_end(self, batch, logs={}):
        self.losses.append(logs.get('loss'))

 

例子:记录损失函数的历史数据

class LossHistory(keras.callbacks.Callback):
    def on_train_begin(self, logs={}):
        self.losses = []
 
    def on_batch_end(self, batch, logs={}):
        self.losses.append(logs.get('loss'))
 
model = Sequential()
model.add(Dense(10, input_dim=784, kernel_initializer='uniform'))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')
 
history = LossHistory()
model.fit(X_train, Y_train, batch_size=128, epochs=20, verbose=0, callbacks=[history])
 
print history.losses
# outputs
'''
[0.66047596406559383, 0.3547245744908703, ..., 0.25953155204159617, 0.25901699725311789]

参考: https://blog.csdn.net/weixin_38517705/article/details/82971147

Keras_callback
qq_36601957的博客
01-04 254
1.ReduceLROnPlateau keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=10, verbose=0, mode='auto', epsilon=0.0001, cooldown=0, min_lr=0) 当评价指标不在提升时,减少学习率 当学习停滞时,减少2倍或10倍的学习率常常能...
keras使用callback造自己的monitor函数
akon_wong_hkbu的博客
06-09 1699
fit_generator函数 callbackkeras.callbacks.ModelCheckpoint是一个常见的callback类,其重写了on_epoch_end函数,在每个epoch结束保存模型数据进入文件。 keras.callbacks.History类主要记录每一次epoch训练的结果,包含loss以及acc的值; keras.callbacks.ProgbarLogger类实现训练间状态数据信息的输出,主要涉及进度相关信息。 训练过程,每次权重的更新都是在一个bat
Keras的各种Callback函数示例(含Checkpoint模型的保存、读取示例)-----记录
热门推荐
海淀小天的blog
10-09 2万+
本文整理了绝大多数keras里的Callback回调)函数,并且收集了代码调用示例。 大多数内容整理自网络,参考资料已在文章最后给出。 回调函数Callbacks 回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit(),即可在给定的训练阶段调用该函数函数。 【Tips】虽然我们称之为回调...
Keras学习4:Callback
qq_16452745的博客
05-17 376
首先给出Keras官方文档对Callback的解释:Keras-Callback 回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit(),即可在给定的训练阶段调用该函数函数。 ...
Keras的回调函数callback)的使用与介绍
万事胜意
12-17 4028
以前我在训练的时候,都是直接设定一个比较大的epoch,跑完所有的epoch之后再根据数据去调整模型与参数。这样做会比较耗时,例如说训练在某一个epoch开始已经过拟合了,后面继续训练意义就不大了。 在书上看到的callback函数很好的解决了这个问题,它能够监测训练过程的loss或者acc这些指标,一旦观察到损失不再改善之后,就可以止训练,节省时间。下面记录一下 介绍: (选自《pyt...
keras-callback-patch
03-27
Keras,回调(Callback)是一个强大的工具,允许我们在训练过程执行自定义操作,例如监控性能、调整学习率或保存最佳模型。"keras-callback-patch"是一个针对Keras回调功能的增强补丁,旨在进一步提升模型训练...
keras的fit函数参数_keras的fit_generator与callback函数
weixin_42542669的博客
01-12 1218
fit_generator函数fit_generator函数callback类每一个epoch结束(on_epoch_end)时,都要调用callback函数callback函数(类)都要集成callback类,callback类的成员函数如下:callbackkeras.callbacks.ModelCheckpoint是一个常见的callback类,其重写了on_epoch_end函数,在...
keras 回调函数Callbacks 断点ModelCheckpoint教程
01-21
回调函数是一个函数的合集,会在训练的阶段使用。你可以使用回调函数来查看训练模型的内在状态和统计。你可以传递一个列表的回调函数(作为 callbacks 关键字参数)到 Sequential 或 Model 类型的 .fit() 方法。...
Keras深度学习框架第十一讲:构建自定义回调函数(callback)
最新发布
MUKAMO的博客
05-18 1421
Keras的自定义Callback允许在训练过程动态调整模型参数、保存最佳模型或监控训练指标。通过继承keras.callbacks.Callback类并重写相应方法,可以实现自定义回调。常见用途包括早停、学习率调度、模型检查点等。在回调,可以访问模型的属性和方法,如改变学习率或保存权重。使用自定义Callback时,需注意避免副作用,并确保在适当时候访问模型状态。这种灵活性使Keras在复杂的深度学习项目非常有用。
【MindSpore】实现保存最优模型
qingshuibaifen的博客
11-29 1228
1. 功能描述: MindSpore训练模型时,实现保存最优模型。 2. 实现保存最优模型功能简介: 在面对复杂网络时,往往需要进行几十甚至几百次的epoch训练。在训练之前,很难掌握在训练到第几个epoch时,模型的精度能达到满足要求的程度,所以经常会采用一边训练的同时,在相隔固定epoch的位置对模型进行精度验证,并保存相应的模型,等训练完毕后,通过查看对应模型精度的变化就能迅速地挑选出相对最优的模型。 流程如下: 1) 定义回调函数EvalCallBack,实现同步进行训练和验证。 2) 定义训练网络
Keras Callback函数
Fighting_y的博客
04-27 611
回调函数Callbacks 回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit(),即可在给定的训练阶段调用该函数函数。 【Tips】虽然我们称之为回调“函数”,但事实上Keras的回调函数是一个类,回调函数只是习惯性称呼 Callback keras.callbacks.Callback() 这是...
怎么在keras记录损失loss,并保存到文件
yang_daxia的博客
11-27 1万+
使用回调函数callback 以下为简单例子: class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.losses = [] def on_batch_end(self, batch, logs={}): self.losses...
KerasCallbacks
mjiansun的专栏
11-13 726
回调函数使用 回调函数是一个函数的合集,会在训练的阶段使用。你可以使用回调函数来查看训练模型的内在状态和统计。你可以传递一个列表的回调函数(作为callbacks关键字参数)到Sequential或Model类型的.fit()方法。在训练时,相应的回调函数的方法就会被在各自的阶段被调用。 Callback keras.callbacks.Callback() 用来组...
keras时,自建LossHistory类保存机器学习算法运行过程的loss和acc
我在浪里
07-27 3582
LossHistory类: class LossHistory(keras.callbacks.Callback): def on_train_begin(self, logs={}): self.losses = {'batch':[], 'epoch':[]} self.accuracy = {'batch':[], 'epoch':[]} ...
keras callback什么时候被调用
northeastsqure的专栏
08-13 526
model.fit_generator(datagen.flow(x_train, y_train, batch_size=64), epochs=epochs, verbose=1, validation_data=(x_test, y_test),callbacks=callbacks_list) 每个epoch后,callback会被执行。
11.pytorch lightning之ModelCheckpoint
论文学习笔记-《Fast Online Object Tracking and Segmentation- A Unifying Approach》
04-27 1799
callback回调就是在合适的时候调用相应的函数,比如在训练开始前,训练结束后,每个epoch前后等等。training_step(), validation_step(), test_step()等函数都是在合适的时候被调用的。需要注意的是,montior指定的指标必须在LightningModule类指定。另外也可以使用YAML文件配置。
keras学习之回调函数使用
这个世界不是如你所想
03-10 693
on_epoch_begin(epoch, logs) ←----在每轮开始时被调用on_epoch_end(epoch, logs) ←----在每轮结束时被调用on_batch_begin(batch, logs) ←----在处理每个批量之前被调用on_batch_end(batch, logs) ←----在处理每个批量之后被调用on_train_begin(logs) ←----在训练开始时被调用on_train_end(logs ←----在训练结束时被调用。
深度学习 keras 回调函数详解与应用
回调函数使用极大地增强了Keras的灵活性和实用性,让开发者能够在训练过程实施复杂的策略,以提高模型的泛化能力和训练效率。例如,`ModelCheckpoint`可以在验证集性能达到最优时保存模型,避免了因过拟合导致的...
写文章

热门文章

  • 关于医学影像中的轴位面(横断面)、冠状面、矢状面的解释 87375
  • Python中的listdir()函数 37491
  • Python中读取图片并转化为numpy.ndarray()数据的6种方式 33899
  • Pandas中,画直方图Hist 的四种方法,以及其他绘图 26850
  • python numpy 数组中元素设置所有小于0的元素为0 16193

分类专栏

  • 论文学习 1篇
  • Pytorch 10篇
  • 有趣的 3篇
  • 配置 1篇
  • 操作系统 2篇
  • 网络训练 1篇
  • 医学图像处理 9篇
  • 分割
  • VTK 4篇
  • Matlab学习 3篇
  • 数据集
  • 数学知识 2篇
  • Pandas 6篇
  • seaborn
  • Sklearn 2篇
  • Git & Github 1篇
  • TOOLS 1篇
  • 傅里叶变换 1篇
  • MachineLearning中的函数 1篇
  • Python语法注意点 75篇
  • 算法——并查集 1篇
  • 算法 3篇
  • 编译原理
  • JAVA——Swing
  • 算法——深度优先遍历 1篇
  • 机器学习 7篇
  • numpy学习 26篇
  • 数字图像处理 24篇
  • 周志华西瓜书练习题 2篇
  • 深度学习 29篇
  • openCV 4篇
  • torch 1篇
  • Keras 14篇
  • 概率论知识 2篇
  • 经典好文博客链接 1篇

最新评论

  • vtk.vtkPolyDataReader()

    哈哈哈嗝020205: 请问命令vreader.Update()在这里的作用是什么,因为()里面并没有需要更新的内容?感谢答疑

  • python numpy 数组中元素设置所有小于0的元素为0

    Elvirangel: hhhhh,两年不写CSDN了。谢谢盆友哦~

  • preprocessing.StandardScaler中fit、fit_transform、transform的区别

    I_fk_your_father: standardscaler()的作用不是去除均值并缩放,为什么是通过均值和方差进行预测

  • preprocessing.StandardScaler中fit、fit_transform、transform的区别

    巴黎不咖喱: 好评!

  • pytorch中Dataloader()中的num_workers设置问题

    Elvirangel: 我理解:1、和电脑的配置啥的有关系,你设置的多了,电脑带不动也会报错。2、而且你设置多个,之间的数据分布之类的工作也有资源消耗。

大家在看

  • 通过自动化的过程监督提高语言模型中的数学推理能力 704

最新文章

  • faster rcnn手写笔记
  • Anaconda: Command not found 解决方案
  • pytorch实现L2和L1正则化regularization的方法
2021年1篇
2020年67篇
2019年73篇
2018年28篇
2017年3篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家浙江定制玻璃钢雕塑商场仿真植物美陈玻璃钢仿真花雕塑玻璃钢动物雕塑模具培训玻璃钢造型雕塑哪个靠谱广西玻璃钢金属雕塑企业四川周年庆典商场美陈有哪些丽江玻璃钢雕塑生产商湖北欧式玻璃钢雕塑制作商场美陈九台玻璃钢雕塑广东玻璃钢卡通雕塑报价玻璃钢丙烯仿石雕塑北京大型商场美陈哪里有玻璃钢雕塑保存时间商场店铺美陈要求安徽景区玻璃钢雕塑多少钱泰州玻璃钢龙雕塑设计广场玻璃钢动物雕塑封丘玻璃钢雕塑设计河源玻璃钢卡通座椅雕塑商场美陈网女装陈列贵州公园玻璃钢雕塑发光景观玻璃钢雕塑供应商玻璃钢雕塑怎样丙烯着色韶关玻璃钢雕塑哪里买玻璃钢卡通门头雕塑小榄商场美陈定制玻璃钢坐凳雕塑玻璃钢彩绘雕塑品牌香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化