Keras深度学习框架第二十六讲:使用KerasNLP上传模型

1、上传模型的概念

在机器学习和深度学习领域,"上传模型"通常指的是将训练好的模型保存到某个位置,以便后续使用或分享,而不是直接通过KerasNLP库进行上传操作。但在这里,我们可以理解为保存和分享模型。

当程序员使用KerasNLP构建并训练了一个模型后,可能想要保存这个模型以便后续使用或分享给他人。在Keras(KerasNLP基于Keras构建)中,你可以很容易地保存和加载模型。

保存模型通常涉及两个步骤:

  1. 保存模型结构:这包括模型的层、连接和配置。在Keras中,你可以使用model.save('model_architecture.json')来保存模型结构为JSON文件。
  2. 保存模型权重:这是模型在训练过程中学习到的参数。你可以使用model.save_weights('model_weights.h5')来保存模型权重为HDF5文件。

如果你想要同时保存模型结构和权重,你可以使用model.save('full_model.h5'),这会保存一个完整的HDF5文件,其中包含了模型的结构和权重。

加载模型时,你可以首先加载模型结构,然后加载权重。但如果你保存了完整的模型,你可以直接使用keras.models.load_model('full_model.h5')来加载模型。

微调机器学习模型可以为特定任务带来令人印象深刻的结果。将微调后的模型上传到模型库(hub)可以使您与更广泛的社区分享它。通过分享您的模型,您将提高其他研究人员和开发者的可访问性,使您的贡献成为机器学习领域不可或缺的一部分。这还可以简化将您的模型集成到现实世界应用中的过程。

本文将指导程序员如何将微调后的模型上传到流行的模型库,如Kaggle Models和Hugging Face Hub。

1.1上传到Kaggle Models

  • 准备模型文件:首先,确保您的模型文件(如.h5.pth.onnx等)和任何其他必要的文件(如配置文件、词汇表等)都已准备好。

  • 登录Kaggle:在Kaggle上创建一个账户或登录您的现有账户。

  • 创建数据集:在Kaggle上创建一个新的数据集,用于存放您的模型文件。您可以选择将数据集设置为私有或公开。

  • 上传文件:在数据集的“上传”部分,选择您的模型文件和其他必要的文件,并将它们上传到Kaggle。

  • 分享数据集:一旦文件上传完成,您可以分享数据集的链接,以便其他用户能够下载和使用您的模型。

1.2上传到Hugging Face Hub

  • 安装Hugging Face库:确保您已经安装了Hugging Face的Transformers库,因为它将用于与Hugging Face Hub进行交互。

  • 准备模型:将您的模型转换为Hugging Face Transformers库支持的格式(如PyTorch的.pt或TensorFlow的.h5)。

  • 登录Hugging Face Hub:在Hugging Face Hub上创建一个账户或登录您的现有账户。

  • 使用Transformers库上传模型:使用Transformers库中的push_to_hub函数或相关命令来上传您的模型。这通常涉及指定模型存储库的名称、本地模型的路径以及其他相关参数。

  • 分享模型:一旦模型上传完成,Hugging Face Hub将为您生成一个分享链接,您可以将该链接分享给其他人,以便他们可以直接从Hub中加载和使用您的模型。

通过上传您的模型到这些模型库,您可以让其他研究人员和开发者更容易地找到和使用您的成果,从而促进整个机器学习社区的发展。

2、上传操作的步骤

2.1设置

安装及导入

!pip install -q --upgrade keras-nlp huggingface-hub kagglehub
import osos.environ["KERAS_BACKEND"] = "jax"import keras_nlp

数据准备
在本指南中,我们可以使用IMDB影评数据集。现在,让我们从tensorflow_datasets库中加载这个数据集。

以下是使用Python和tensorflow_datasets(通常简写为tfds)加载IMDB影评数据集的示例代码:

import tensorflow_datasets as tfds# 加载IMDB影评数据集
# 注意:根据tensorflow_datasets的版本,加载数据集的方式可能有所不同
# 这里假设你使用的是较新版本的tensorflow_datasets
(train_data, test_data), info = tfds.load('imdb_reviews/subwords8k', split=['train', 'test'], shuffle_files=True, with_info=True, as_supervised=True)# 打印数据集信息
print(info)# 示例:打印一些训练数据
for example in train_data.take(5):print(example)

请注意,tfds.load函数的参数可能会根据你的tensorflow_datasets版本和具体的数据集版本有所不同。上面的代码假设你正在加载的是imdb_reviews/subwords8k版本的数据集,这个版本使用了8000个子词(subwords)的词汇表。

如果你使用的是旧版本的tensorflow_datasets,加载数据集的方式可能略有不同。确保查看你正在使用的tensorflow_datasets版本的文档以获取正确的加载方法。

当您在处理大型数据集(如IMDB影评数据集)时,为了加速模型的训练或演示过程,通常会使用数据的一个子集。然而,如果您需要训练一个更高质量的模型,使用更多的训练样本是必要的。

imdb_train = imdb_train.take(100)

在上面给出的代码中,imdb_train.take(100) 表示您只从原始的 imdb_train 数据集中取出了前100个样本。这确实可以加快训练过程,但也可能导致模型在未见过的数据上表现不佳,因为模型没有接触到足够多的数据来学习更广泛的模式。

如果您想要训练一个更高质量的模型,您应该考虑使用更多的训练样本。例如,您可以使用整个训练集,或者如果整个训练集仍然太大,可以使用其中的一部分(但要远远大于100个样本)。

在TensorFlow中,您不需要显式地“take”一个特定的数量。默认情况下,当您遍历数据集时,它会按顺序提供所有的样本。如果您想使用数据集的一个子集,但不确定要取多少个样本,您可以使用 tf.data.Dataset.shuffle 和 tf.data.Dataset.batch 来打乱样本和进行批量处理,然后使用 for 循环来迭代多个批次。

2.2任务上传

keras_nlp.models.Task 是一个封装了 keras_nlp.models.Backbone(模型主干)和 keras_nlp.models.Preprocessor(预处理器)的Keras NLP任务模型,用于创建可以直接用于给定文本问题的训练、微调和预测的模型。在本节中,我们将解释如何创建一个任务模型,对其进行微调,并将其上传到模型仓库。

首先,你需要创建一个 Task 实例,该实例结合了特定的预处理逻辑和模型主干。Task 提供了方便的接口,用于加载预训练的模型权重,定义训练、验证和预测步骤,以及将模型保存为可重用的格式。

一旦你有了定义好的 Task,你可以使用它来对模型进行微调。微调通常涉及使用你的特定数据集来更新模型的权重,以便在你的特定任务上获得更好的性能。在微调过程中,你可以调整各种超参数,如学习率、批次大小、训练轮次等,以优化模型的性能。

微调完成后,你可能希望将模型上传到模型仓库,以便其他人可以使用或参考你的工作。模型仓库是一个在线平台,允许用户共享、发现和重用机器学习模型。上传模型到仓库可以让你的工作更容易被他人找到和重用,同时也可以为你的工作带来更多的曝光和认可。

在上传模型时,你需要遵循模型仓库的特定指南和要求。这可能包括将模型保存为特定格式(如TensorFlow SavedModel或Hugging Face Transformers格式),提供模型的元数据(如名称、描述、标签等),以及遵循任何特定的许可和版权要求。

2.2.1加载模型

如果你想要基于一个基础模型来构建一个因果语言模型(Causal Language Model,通常指的是自回归语言模型,如GPT系列),你可以简单地调用keras_nlp.models.CausalLM.from_preset方法并传入一个内置的预设标识符。

keras_nlp.models.CausalLM.from_preset是一个工厂方法,它允许你根据预设的配置快速加载和实例化一个预定义的因果语言模型。这些预设通常包含了模型的架构、参数以及其他必要的配置信息,使得你可以方便地开始训练、微调或进行推理。

causal_lm = keras_nlp.models.CausalLM.from_preset("gpt2_base_en")
2.2.2微调模型

加载模型之后,你可以通过调用.fit()方法来进行模型的微调。在这个例子中,我们将在IMDB影评数据集上微调模型,这样模型就会针对电影领域进行特定优化。

微调(fine-tuning)是一个常见的训练过程,其中预训练的模型(例如基于大规模通用语料库训练的模型)在新的特定任务或数据集上进行进一步训练。这样做可以调整模型的参数以适应新数据集的特定模式或任务要求。

# Drop labels and keep the review text only for the Causal LM.
imdb_train_reviews = imdb_train.map(lambda x, y: x)# Fine-tune the Causal LM.
causal_lm.fit(imdb_train_reviews)
2.2.3将模型存储到本地

要将模型上传到模型仓库,您首先需要使用save_to_preset方法将模型本地保存。但是,请注意,keras_nlp库本身可能并不直接提供save_to_preset这样的具体方法,因为save_to_preset并不是Keras或TensorFlow标准API的一部分。不过,您可以使用TensorFlow的save_model函数或Keras的save方法来保存模型。

preset_dir = "./gpt2_imdb"
causal_lm.save_to_preset(preset_dir)
os.listdir(preset_dir)
2.2.4加载本地模型

当您使用某种机制(如TensorFlow的save_model函数)将模型保存到本地时,您可以使用相应的加载函数或方法来重新加载这个模型。不过,您提到的from_preset方法并不是TensorFlow或Keras标准API的一部分,它可能是特定库(如keras_nlp或自定义库)提供的一个功能。

在TensorFlow中,通常使用tf.keras.models.load_model函数来加载保存的模型。如果您使用的是keras_nlp或其他特定库,并且它们提供了from_preset这样的加载方法,那么您应该按照该库的文档来使用它。

causal_lm = keras_nlp.models.CausalLM.from_preset(preset_dir)

程序员还可以从预设目录加载keras_nlp.models.Backbone和keras_nlp.models.Tokenizer对象。请注意,这些对象相当于上面提到的causal_lm.backbone和causal_lm.preprocessor.tokenizer。

当程序员使用keras_nlp或类似的库来加载预训练的模型时,通常会得到整个模型(包括主干和预处理器),但有时候程序员可能只想加载模型的一部分,例如模型的主干或用于文本处理的分词器(Tokenizer)。

backbone = keras_nlp.models.Backbone.from_preset(preset_dir)
tokenizer = keras_nlp.models.Tokenizer.from_preset(preset_dir)

2.3将模型上传到模型仓库

在将预设保存到目录后,您可以从KerasNLP库直接将该目录上传到模型仓库,如Kaggle或Hugging Face。要将模型上传到Kaggle,URI必须以kaggle://开头;而要上传到Hugging Face,URI应该以hf://开头。

2.3.1上传到Kaggle

要将模型上传到Kaggle,首先我们需要对Kaggle进行身份验证。这可以通过以下方式之一完成:

  • 设置环境变量KAGGLE_USERNAMEKAGGLE_KEY
  • 在本地提供一个~/.kaggle/kaggle.json文件。
  • 调用kagglehub.login()(注意:kagglehub.login()可能不是Kaggle官方的API调用方法,这里可能是指某个第三方库或自定义方法)。

在继续之前,让我们确保我们已经登录了。

import kagglehubif "KAGGLE_USERNAME" not in os.environ or "KAGGLE_KEY" not in os.environ:kagglehub.login()

为了上传模型,我们可以使用keras_nlp.upload_preset(uri, preset_dir) API,其中uri的格式为kaggle://<KAGGLE_USERNAME>/<MODEL>/Keras/<VARIATION>以便上传到Kaggle,而preset_dir则是保存模型的目录。

运行以下命令将把保存在preset_dir中的模型上传到Kaggle:

kaggle_username = kagglehub.whoami()["username"]
kaggle_uri = f"kaggle://{kaggle_username}/gpt2/keras/gpt2_imdb"
keras_nlp.upload_preset(kaggle_uri, preset_dir)
2.3.2上传到Hugging Face

要将模型上传到Hugging Face,首先我们需要对Hugging Face进行身份验证。这可以通过以下方式之一完成:1. 设置环境变量HF_USERNAMEHF_TOKEN。2. 调用huggingface_hub.notebook_login()

在继续之前,让我们确保我们已经登录了。

import huggingface_hubif "HF_USERNAME" not in os.environ or "HF_TOKEN" not in os.environ:huggingface_hub.notebook_login()

keras_nlp.upload_preset(uri, preset_dir) 函数通常不是用来将模型上传到 Hugging Face 的,因为提供的 URI 格式 kaggle://<HF_USERNAME>/<MODEL> 是不正确的。对于 Hugging Face,URI 应该遵循 Hugging Face Hub 的格式,通常是 hf://<HF_USERNAME>/<MODEL_NAME> 或者直接使用模型仓库的完整路径。

但是,如果我们假设 keras_nlp 库或其某个扩展支持通过修改后的 upload_preset 函数来上传模型到 Hugging Face,并且你确实需要使用 kaggle://(尽管这不是标准的 Hugging Face 格式),那么这里的翻译应该是基于这个假设的。

不过,为了准确性,我将提供一个更标准的翻译,假设我们使用的是 Hugging Face Hub 的正确格式:

使用 keras_nlp.upload_preset(uri, preset_dir) 可以将模型上传到 Hugging Face,如果 uri 的格式是 hf://<HF_USERNAME>/<MODEL_NAME>。运行以下命令将把保存在 preset_dir 中的模型上传到 Hugging Face:

注意:在实际应用中,你需要替换 <HF_USERNAME><MODEL_NAME> 为你的 Hugging Face 用户名和模型名称。同时,你需要确保 keras_nlp 或其相关库确实支持 upload_preset 函数,并且该函数适用于 Hugging Face 的上传。通常,对于 Hugging Face,我们会使用他们自己的库 huggingface_hub 来执行上传操作。

hf_username = huggingface_hub.whoami()["name"]
hf_uri = f"hf://{hf_username}/gpt2_imdb"
keras_nlp.upload_preset(hf_uri, preset_dir)
2.3.3加载用户上传的模型

在确认模型已成功上传到Kaggle之后,我们可以通过调用from_preset函数来加载该模型。

causal_lm = keras_nlp.models.CausalLM.from_preset(f"kaggle://{kaggle_username}/gpt2/keras/gpt2_imdb"
)

同样地,我们也可以通过调用from_preset来加载上传到Hugging Face的模型,但需要注意的是,加载Hugging Face模型的URI应该符合Hugging Face Hub的格式。

causal_lm = keras_nlp.models.CausalLM.from_preset(f"hf://{hf_username}/gpt2_imdb")
2.3.4分类器模型上传

上传分类器模型与上传因果语言模型(Causal LM)类似。为了上传微调后的模型,首先,您应该使用save_to_preset API将模型保存到本地目录,然后通过keras_nlp.upload_preset将其上传。

# Load the base model.
classifier = keras_nlp.models.Classifier.from_preset("bert_tiny_en_uncased", num_classes=2
)# Fine-tune the classifier.
classifier.fit(imdb_train)# Save the model to a local preset directory.
preset_dir = "./bert_tiny_imdb"
classifier.save_to_preset(preset_dir)# Upload to Kaggle.
keras_nlp.upload_preset(f"kaggle://{kaggle_username}/bert/keras/bert_tiny_imdb", preset_dir
)

在确认模型已经上传到Kaggle之后,我们可以通过调用from_preset来加载模型。

classifier = keras_nlp.models.Classifier.from_preset(f"kaggle://{kaggle_username}/bert/keras/bert_tiny_imdb")

3、总结

本文主要讨论了关于模型上传和加载的几个方面。首先,提到了将模型上传到Kaggle平台,这是一个通常用于数据科学竞赛和共享数据集的平台。然而,虽然Kaggle支持数据集的上传,但它并不是直接用于存储和加载机器学习模型的平台。

接下来,提到了通过调用from_preset来加载模型的概念,但需要注意的是,这并不是Kaggle或常见机器学习库(如TensorFlow、PyTorch等)的标准API。from_preset可能是一个假设性的函数名,用于说明从预设位置加载模型的概念。

在实际情况中,如果模型已经被上传到了Kaggle数据集,并且需要加载使用,那么通常的步骤是先从Kaggle下载模型文件,然后使用相应的库(如TensorFlow、PyTorch等)提供的API来加载这些模型文件。具体的加载方法取决于模型的格式和所使用的库。

关于如何下载和上传模型,以下是一些详细的步骤和说明:

3.1下载模型:

  • 确定模型来源:首先,你需要知道模型存储在哪里。模型可能存储在云存储服务(如Google Drive、Dropbox等)、模型仓库(如Hugging Face Hub、Model Zoo等)或数据科学平台(如Kaggle)上。

  • 使用专用下载工具或API:许多平台提供了专用的下载工具或API来方便用户下载模型。例如,在Hugging Face Hub上,你可以使用huggingface-cli命令行工具或直接从网站下载。

  • 下载到本地:将模型文件下载到你的本地计算机或服务器上。确保你有足够的存储空间来保存模型文件。

  • 解压和验证:如果模型是以压缩包的形式下载的,你需要解压它。解压后,验证文件是否完整且未损坏。

3.2上传模型:

  • 准备模型文件:首先,确保你已经训练并保存了你的模型。不同的机器学习框架(如TensorFlow、PyTorch等)有不同的保存格式和方法。

  • 选择上传平台:选择一个适合上传模型的平台。这可以是公共模型仓库(如Hugging Face Hub、Model Zoo等)或你自己的云存储服务。

  • 注册和登录:如果你选择的是公共模型仓库,你可能需要先注册一个账户并登录。

  • 上传模型文件:按照平台的指示上传你的模型文件。这通常涉及到选择一个上传选项,浏览并选择你的模型文件,然后点击上传按钮。

  • 填写模型信息:在上传过程中或上传完成后,你可能需要填写一些关于模型的信息,如模型名称、描述、使用的数据集、训练细节等。

  • 分享和发布:一旦模型上传成功,你可以选择分享模型的链接给你的同事或朋友,或者将模型发布到公共仓库以供其他人使用。

需要注意的是,不同的平台可能有不同的上传要求和限制。确保在上传之前仔细阅读并遵守平台的指南和政策。

另外,对于大型模型或数据集,上传和下载可能需要较长时间,因此请确保你的网络连接稳定且速度足够快。如果可能的话,考虑使用专业的数据传输工具或服务来加速这个过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/15847.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java进阶学习笔记22——泛型方法、通配符和上下限

泛型方法&#xff1a; package cn.ensource.d11_generics_method;public class Test {public static void main(String[] args) {// 泛型方法String res test("Java");System.out.println(res);Dog dog1 test(new Dog());System.out.println(dog1);}// 泛型方法pub…

手机上制作证件照

最近由于需要给老姐弄一组证件照&#xff0c;找了一通手机上的软件&#xff0c;找到一款性价比较高的&#xff0c;详细流程记录下来。vx小程序上搜索"泰世茂证件照"&#xff0c;打开首页如下图所示∶ 单击"开始制作" &#xff0c;选择一个证件照类别&#…

Paddle 傅里叶变换基础及领域应用

Paddle 傅里叶变换基础及领域应用 1. 傅里叶变换基础 1.1 傅里叶变换简介 傅里叶变换是一种重要的信号处理技术&#xff0c;它可以将一个信号从时域转换到频域。在频域中&#xff0c;信号的频率特性更加明显&#xff0c;有利于分析和处理。傅里叶变换的基本思想是将一个信号…

基于Rsoft的Fullwave仿真模块进行双芯波导能量耦合与波分复用

Rsoft中的Fullwave仿真模块可以更精确的仿真微小结构&#xff0c;按照建立模型&#xff0c;设置参数&#xff0c;监测能量&#xff0c;优化结构的思路对其进行仿真。图1是在Fullwave模块中建立的双芯波导仿真模型。在模型中设置好折射率、光源、光路、监测器等便可以进行仿真。…

Ubtuntu下安装配置SSH详解

在Ubuntu下安装SSH并配置远程连接&#xff0c;你可以遵循以下步骤&#xff1a; 安装OpenSSH Serve sudo apt update 安装OpenSSH Server&#xff1a; 使用以下命令安装OpenSSH服务器软件包&#xff1a; sudo apt install openssh-server 安装过程可能会要求你确认操作&#x…

Spring STOMP-STOMP客户端

Spring提供了一个基于WebSocket的STOMP客户端和一个基于TCP的STOMP客户端。 首先&#xff0c;你可以创建并配置WebSocketStompClient&#xff0c;如下所示&#xff1a; WebSocketClient webSocketClient new StandardWebSocketClient(); WebSocketStompClient stompClient …

【竞技宝】英超:滕哈格命真硬!足总杯夺冠获欧联资格

足总杯决赛结束,曼联爆冷2比1击败联赛冠军曼城夺冠,滕哈格再一次用顶级理解带队拿到杯赛冠军。赛前曼彻斯特当地有媒体爆料,曼联管理层已经决定要在足总杯决赛之后解雇滕哈格,这个消息让不少球迷都很担心滕哈格的状态。但是荷兰主帅凭借强大的内心,带领球队击败了不可一世的曼城…

如何在Java中创建不可变对象?

在Java中创建不可变对象是一个常见的编程实践&#xff0c;它有助于提高代码的可读性、可维护性和安全性。以下我将从技术难点、面试官关注点、回答吸引力和代码举例四个方面来详细阐述如何在Java中创建不可变对象。 一、技术难点 在Java中创建不可变对象时&#xff0c;主要的…

买房送户口!多城加入“抢人大战”

业内人士认为&#xff0c;近期&#xff0c;多地推出的购房落户政策已区别于此前的人才落户政策&#xff0c;更聚焦于住房消费&#xff0c;降低了落户门槛&#xff0c;体现了各地对导入人口的重视&#xff0c;有利于人才流动&#xff0c;推动新型城镇化建设。 千万人口城市“后…

民宿推荐系统-手把手调试搭建

民宿推荐系统-手把手调试搭建 民宿推荐系统-手把手调试搭建

echarts配置记录,一些已经废弃的写法

1、normal&#xff0c;4.0以后无需将样式写在normal中了 改前&#xff1a; 改后&#xff1a; DEPRECATED: normal hierarchy in labelLine has been removed since 4.0. All style properties are configured in labelLine directly now. 2、axisLabel中的文字样式无需使用te…

文本处理工具grep及sed

文章目录 一、grep文本处理工具二、sed文本处理工具基本用法sed脚本格式搜索替代 一、grep文本处理工具 选项含义-color对匹配到的文本着色显示-m 次数匹配到规定的次数后停止-v显示不被命令匹配到的行,即取反-i忽略字符大小写-n显示匹配的行号-c统计匹配的行数-o仅显示匹配到…

log4j2远程代码执行

漏洞复现 漏洞复现2 这个框架不是web框架了&#xff0c;不是服务器web网站框架了&#xff0c;是java日志框架&#xff0c;就是记录日志信息&#xff0c;每一个程序都有一个日志文件&#xff0c;这个就是java里面记录日志的一个框架&#xff0c;它存在的点也是日志框架那几个代…

Java语言规范

Java程序的结构 package—0或1条&#xff0c;出现在程序最开始的地方 Import—0或1条&#xff0c;用于引入Java提供的API class—创建自定义的类&#xff0c;public修饰的class类的类名需要跟文件名完全保持一致 main方法—可执行Java程序的入口&#xff0c;具体介绍查看2.…

Flutter 中的 BackdropFilter 小部件:全面指南

Flutter 中的 BackdropFilter 小部件&#xff1a;全面指南 在Flutter中&#xff0c;BackdropFilter是一个用于创建模糊和颜色调整效果的高级小部件&#xff0c;它可以对组件背后的内容应用滤镜效果。这使得BackdropFilter非常适合实现如背景模糊、颜色混合等复杂的视觉效果。本…

[力扣题解] 463. 岛屿的周长

题目&#xff1a;463. 岛屿的周长 思路 深度优先搜索&#xff1b; 代码 Method 1 对于遍历到的一个地块&#xff0c;向四周探索&#xff0c;越界或者遇到海洋地块说明这条边需要统计&#xff1b; class Solution { private:int dir[4][2] {{1, 0}, {-1, 0}, {0, 1}, {0,…

请叙述Vue 中使用了哪些设计模式

在Vue中&#xff0c;使用了多种设计模式来构建其框架和组件系统&#xff0c;这些设计模式使得Vue具有高效、灵活和易于维护的特性。以下是Vue中常见的设计模式及其简要描述&#xff1a; MVVM&#xff08;Model-View-ViewModel&#xff09;模式&#xff1a; Vue.js是一个MVVM框架…

我用LLaMA-Factory微调大模型来实现商品评论情感分析,准确率高达91.70%

大家好&#xff0c;我是程序锅。 最近在modelscope上闲逛的时候&#xff0c;在数据集板块发现有一个商品评论情感预测数据集。这个数据集源自一个比赛&#xff0c;它的目的是为了预测电商平台顾客的评论是好评还是差评。 数据示例如下所示&#xff08;其中0代表差评&#xff…

数据库漫谈-sybase

sybase就是“system”加“database”&#xff0c;代表着信息系统的底层。Sybase公司很早就推出了关系数据库产品&#xff08;1987年5月推出的Sybase SQLServer1.0&#xff09;。Sybase也是第一个提出Client/Server 体系结构的思想&#xff0c;并率先在Sybase SQLServer 中实现。…