掌握PHP7编程艺术:实例丰富教程指南

4星 · 超过85%的资源 需积分: 10 50 下载量 4 浏览量 更新于2024-07-20 收藏 5.74MB PDF 举报
"《Learning PHP 7》是一本由Antonio Lopez编写的实用指南,旨在帮助读者掌握PHP编程的艺术。这本书以丰富的实例和教程为主,包含了每个PHP开发者都应了解的关键技能。它适合于PHP新手和进阶开发者,无论你是初次接触PHP语言,还是希望提升到PHP 7的新版本技术,本书都是不可或缺的参考资料。 该书版权由Packt Publishing持有,所有内容未经许可不得复制、存储或传输,除非用于学术引用。作者和出版商对于书中信息的准确性尽力确保,但不承担因信息错误导致的直接或间接损失的责任。读者在使用本书时应自行判断,因为书中的信息是按当时知识水平提供的,可能无法涵盖所有最新变化。 首次出版日期为2016年3月,体现了作者对PHP 7版本的深入理解,这包括了PHP 7所带来的新特性、改进和性能优化,如更严格的类型系统、更高效的内存管理以及对HTTP/2协议的支持等。书中涵盖了PHP的基本概念,如变量、数据类型、流程控制、函数、类和对象,以及数据库操作、文件处理、表单验证等内容,这些都是构建现代Web应用的核心元素。 通过阅读《Learning PHP 7》,读者可以掌握编写高效、安全且可维护的PHP代码的基础,并能跟随作者的脚步,逐步提升自己的编程技巧和项目开发能力。无论是在个人学习还是职业发展过程中,这本书都提供了宝贵的实践经验和理论指导,是PHP开发者书架上的一部经典之作。"
2023-05-14 上传

以下这段代码是关于CatBoost模型的超参数调整,但里面好像不是在五倍交叉验证下做的分析,请问应该怎么加上五倍交叉验证呢?import os import time import pandas as pd from catboost import CatBoostRegressor from hyperopt import fmin, hp, partial, Trials, tpe,rand from sklearn.metrics import r2_score, mean_squared_error from sklearn.model_selection import train_test_split from sklearn.model_selection import KFold, cross_val_score as CVS, train_test_split as TTS 自定义hyperopt的参数空间 space = {"iterations": hp.choice("iterations", range(1, 30)), "depth": hp.randint("depth", 16), "l2_leaf_reg": hp.randint("l2_leaf_reg", 222), "border_count": hp.randint("border_count", 222), 'learning_rate': hp.uniform('learning_rate', 0.001, 0.9), } data = pd.read_csv(r"E:\exercise\synthesis\synthesis_dummy_2.csv") #验证随机森林填补缺失值方法是否有效 X = data.iloc[:,1:] y = data.iloc[:,0] Xtrain,Xtest,Ytrain,Ytest = TTS(X_wrapper,y,test_size=0.2,random_state=100) def epoch_time(start_time, end_time): elapsed_secs = end_time - start_time elapsed_mins = elapsed_secs / 60 return elapsed_mins, elapsed_secs 自动化调参并训练 def cat_factory(argsDict): estimator = CatBoostRegressor(loss_function='RMSE', random_seed=22, learning_rate=argsDict['learning_rate'], iterations=argsDict['iterations'], l2_leaf_reg=argsDict['l2_leaf_reg'], border_count=argsDict['border_count'], depth=argsDict['depth'], verbose=0) estimator.fit(Xtrain, Ytrain) val_pred = estimator.predict(Xtest) mse = mean_squared_error(Ytest, val_pred) return mse

2023-07-20 上传

运行以下Python代码:import torchimport torch.nn as nnimport torch.optim as optimfrom torchvision import datasets, transformsfrom torch.utils.data import DataLoaderfrom torch.autograd import Variableclass Generator(nn.Module): def __init__(self, input_dim, output_dim, num_filters): super(Generator, self).__init__() self.input_dim = input_dim self.output_dim = output_dim self.num_filters = num_filters self.net = nn.Sequential( nn.Linear(input_dim, num_filters), nn.ReLU(), nn.Linear(num_filters, num_filters*2), nn.ReLU(), nn.Linear(num_filters*2, num_filters*4), nn.ReLU(), nn.Linear(num_filters*4, output_dim), nn.Tanh() ) def forward(self, x): x = self.net(x) return xclass Discriminator(nn.Module): def __init__(self, input_dim, num_filters): super(Discriminator, self).__init__() self.input_dim = input_dim self.num_filters = num_filters self.net = nn.Sequential( nn.Linear(input_dim, num_filters*4), nn.LeakyReLU(0.2), nn.Linear(num_filters*4, num_filters*2), nn.LeakyReLU(0.2), nn.Linear(num_filters*2, num_filters), nn.LeakyReLU(0.2), nn.Linear(num_filters, 1), nn.Sigmoid() ) def forward(self, x): x = self.net(x) return xclass ConditionalGAN(object): def __init__(self, input_dim, output_dim, num_filters, learning_rate): self.generator = Generator(input_dim, output_dim, num_filters) self.discriminator = Discriminator(input_dim+1, num_filters) self.optimizer_G = optim.Adam(self.generator.parameters(), lr=learning_rate) self.optimizer_D = optim.Adam(self.discriminator.parameters(), lr=learning_rate) def train(self, data_loader, num_epochs): for epoch in range(num_epochs): for i, (inputs, labels) in enumerate(data_loader): # Train discriminator with real data real_inputs = Variable(inputs) real_labels = Variable(labels) real_labels = real_labels.view(real_labels.size(0), 1) real_inputs = torch.cat((real_inputs, real_labels), 1) real_outputs = self.discriminator(real_inputs) real_loss = nn.BCELoss()(real_outputs, torch.ones(real_outputs.size())) # Train discriminator with fake data noise = Variable(torch.randn(inputs.size(0), self.generator.input_dim)) fake_labels = Variable(torch.LongTensor(inputs.size(0)).random_(0, 10)) fake_labels = fake_labels.view(fake_labels.size(0), 1) fake_inputs = self.generator(torch.cat((noise, fake_labels.float()), 1)) fake_inputs = torch.cat((fake_inputs, fake_labels), 1) fake_outputs = self.discriminator(fake_inputs) fake_loss = nn.BCELoss()(fake_outputs, torch.zeros(fake_outputs.size())) # Backpropagate and update weights for discriminator discriminator_loss = real_loss + fake_loss self.discriminator.zero_grad() discriminator_loss.backward() self.optimizer_D.step() # Train generator noise = Variable(torch.randn(inputs.size(0), self.generator.input_dim)) fake_labels = Variable(torch.LongTensor(inputs.size(0)).random_(0,

2023-02-17 上传