同步操作将从 PaddlePaddle/Paddle 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.import sysimport unittestimport timeimport randomimport tempfileimport shutilimport numpy as npimport paddlefrom paddle import Modelfrom paddle.static import InputSpecfrom paddle.vision.models import LeNetfrom paddle.hapi.callbacks import config_callbacksimport paddle.vision.transforms as Tfrom paddle.vision.datasets import MNISTfrom paddle.metric import Accuracyfrom paddle.nn.layer.loss import CrossEntropyLossclass MnistDataset(MNIST):def __init__(self, mode, return_label=True, sample_num=None):super(MnistDataset, self).__init__(mode=mode)self.return_label = return_labelif sample_num:self.images = self.images[:sample_num]self.labels = self.labels[:sample_num]def __getitem__(self, idx):img, label = self.images[idx], self.labels[idx]img = np.reshape(img, [1, 28, 28])if self.return_label:return img, np.array(self.labels[idx]).astype('int64')return img,def __len__(self):return len(self.images)class TestCallbacks(unittest.TestCase):def setUp(self):self.save_dir = tempfile.mkdtemp()def tearDown(self):shutil.rmtree(self.save_dir)def run_callback(self):epochs = 2steps = 5freq = 2eval_steps = 2inputs = [InputSpec([None, 1, 28, 28], 'float32', 'image')]lenet = Model(LeNet(), inputs)lenet.prepare()cbks = config_callbacks(model=lenet,batch_size=128,epochs=epochs,steps=steps,log_freq=freq,verbose=self.verbose,metrics=['loss', 'acc'],save_dir=self.save_dir)cbks.on_begin('train')logs = {'loss': 50.341673, 'acc': 0.00256}for epoch in range(epochs):cbks.on_epoch_begin(epoch)for step in range(steps):cbks.on_batch_begin('train', step, logs)logs['loss'] -= random.random() * 0.1logs['acc'] += random.random() * 0.1time.sleep(0.005)cbks.on_batch_end('train', step, logs)cbks.on_epoch_end(epoch, logs)eval_logs = {'eval_loss': 20.341673, 'eval_acc': 0.256}params = {'steps': eval_steps,'metrics': ['eval_loss', 'eval_acc'],}cbks.on_begin('eval', params)for step in range(eval_steps):cbks.on_batch_begin('eval', step, eval_logs)eval_logs['eval_loss'] -= random.random() * 0.1eval_logs['eval_acc'] += random.random() * 0.1eval_logs['batch_size'] = 2time.sleep(0.005)cbks.on_batch_end('eval', step, eval_logs)cbks.on_end('eval', eval_logs)test_logs = {}params = {'steps': eval_steps}cbks.on_begin('predict', params)for step in range(eval_steps):cbks.on_batch_begin('predict', step, test_logs)test_logs['batch_size'] = 2time.sleep(0.005)cbks.on_batch_end('predict', step, test_logs)cbks.on_end('predict', test_logs)cbks.on_end('train')def test_callback_verbose_0(self):self.verbose = 0self.run_callback()def test_callback_verbose_1(self):self.verbose = 1self.run_callback()def test_callback_verbose_2(self):self.verbose = 2self.run_callback()def test_callback_verbose_3(self):self.verbose = 3self.run_callback()if __name__ == '__main__':unittest.main()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。