『行远见大』炼丹注意事项——以蝴蝶图像分类为例

该项目是飞桨图像分类训练营大作业,以蝴蝶图像分类为例,探究炼丹中数据增强与调参对精度的影响。包括数据集加载预处理(解压、建立路径与标签关系、自定义读取器,用Resize等增强)、构建ResNet152预训练模型,以Adam优化器训练,及预测流程,旨在分析提升分类精度的方法。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

『行远见大』炼丹注意事项——以蝴蝶图像分类为例 - 创想鸟

『行远见大』炼丹注意事项——以蝴蝶图像分类为例

本项目是『飞桨领航团图像分类零基础训练营』课程布置的大作业,项目旨在分析图像分类炼丹过程中如何做数据增强以及调参来增加精度。

『飞桨领航团图像分类零基础训练营』是由飞桨深度学习学院于2021/02/25开设的课程。

加载数据集

解压缩数据步骤:

第一步,把当前路径转换到data目录,可以使用命令!cd data。在AI studio nootbook中可以使用Linux命令,需要在命令的最前面加上英文的感叹号(!)。用&&可以连接两个命令。用号可以换行写代码。需要注意的是,每次重新打开该项目,data文件夹下除了挂载的数据集,其他文件都会被清空。因此,如果把数据保存在data目录中,每次重新启动项目时,都需要解压缩一下。如果想省事持久化保存,可以把数据保存在work目录下。

实际上,!加某命令的模式,等价于python中的get_ipython().system(‘某命令’)模式。

第二步,利用unzip命令,把压缩包解压到当前路径。unzip的-q参数代表执行时不显示任何信息。unzip的-o参数代表不必先询问用户,unzip执行后覆盖原有的文件。两个参数合起来,可以写为-qo。

第三步,用rm命令可以把一些文件夹给删掉(rm -r __MACOSX),比如,__MACOSX文件夹

In [1]

!ls /home/aistudio/data/data66509/Butterfly20.zip!ls /home/aistudio/data/data66509/Butterfly20_test.zip!unzip -q /home/aistudio/data/data66509/Butterfly20_test.zip -d work!unzip -q /home/aistudio/data/data66509/Butterfly20.zip -d work

   

准备数据

数据准备过程包括以下两个重点步骤:

一是建立样本数据读取路径与样本标签之间的关系。

二是构造读取器与数据预处理。可以写个自定义数据读取器,它继承于PaddlePaddle2.0的dataset类,在__getitem__方法中把自定义的预处理方法加载进去。

In [3]

# 以下代码用于建立样本数据读取路径与样本标签之间的关系import osimport randomimport matplotlib.pyplot as pltimport PIL.Image as Imagedata_list = [] # 用个列表保存每个样本的读取路径、标签# 由于属种名称本身是字符串,而输入模型的是数字。需要构造一个字典,把某个数字代表该属种名称。键是属种名称,值是整数。label_list=[]with open("/home/aistudio/work/species.txt") as f:    for line in f:        a,b = line.strip("n").split(" ")        label_list.append([b, int(a)-1])label_dic = dict(label_list)# 获取Butterfly20目录下的所有子目录名称,保存进一个列表之中class_list = os.listdir("/home/aistudio/work/Butterfly20")class_list.remove('.DS_Store') # 删掉列表中名为.DS_Store的元素,因为.DS_Store并没有样本。for each in class_list:    for f in os.listdir("/home/aistudio/work/Butterfly20/"+each):        data_list.append(["/home/aistudio/work/Butterfly20/"+each+'/'+f,label_dic[each]])# 按文件顺序读取,可能造成很多属种图片存在序列相关,用random.shuffle方法把样本顺序彻底打乱。random.shuffle(data_list)# 打印前十个,可以看出data_list列表中的每个元素是[样本读取路径, 样本标签]。print(data_list[0:10])# 打印样本数量,一共有1866个样本。print("样本数量是:{}".format(len(data_list)))

       

[['/home/aistudio/work/Butterfly20/011.Lamproptera_meges/011.jpg', 10], ['/home/aistudio/work/Butterfly20/016.Papilio_alcmenor/012.jpg', 15], ['/home/aistudio/work/Butterfly20/001.Atrophaneura_horishanus/152.jpg', 0], ['/home/aistudio/work/Butterfly20/013.Meandrusa_payeni/007.jpg', 12], ['/home/aistudio/work/Butterfly20/017.Papilio_arcturus/055.jpg', 16], ['/home/aistudio/work/Butterfly20/003.Byasa_alcinous/101.jpg', 2], ['/home/aistudio/work/Butterfly20/010.Lamproptera_curius/030.jpg', 9], ['/home/aistudio/work/Butterfly20/001.Atrophaneura_horishanus/129.jpg', 0], ['/home/aistudio/work/Butterfly20/007.Graphium_cloanthus/020.jpg', 6], ['/home/aistudio/work/Butterfly20/019.Papilio_dialis/043.jpg', 18]]样本数量是:1866

       In [4]

# 以下代码用于构造读取器与数据预处理# 首先需要导入相关的模块import paddlefrom paddle.vision.transforms import Compose, ColorJitter, Resize,Transpose, Normalizeimport cv2import numpy as npfrom PIL import Imagefrom paddle.io import Dataset# 使用Paddle2.0自带的数据增强方法import paddle.vision.transforms as T# 自定义的数据预处理函数,输入原始图像,输出处理后的图像,可以借用paddle.vision.transforms的数据处理功能def preprocess(img):    transform = Compose([        Resize(size=(224, 224)),                                                             # 把数据长宽像素调成224*224        T.ColorJitter(0.125,0.4,0.4,0.08),                                                   # 保持亮度、对比度、饱和度、色调等在测试集上一致        # T.BrightnessTransform(0.4),                                                        # 只对亮度调整做调整        T.RandomHorizontalFlip(0.5),                                                         # 水平翻转        T.RandomRotation(15),                                                                # 随机反转角度范围        T.RandomVerticalFlip(0.5),                                                           # 垂直翻转        T.RandomRotation(15),                                                                # 随机反转角度范围        Normalize(mean=[127.5, 127.5, 127.5], std=[127.5, 127.5, 127.5], data_format='HWC'), # 标准化        Transpose()                                                                          # 原始数据形状维度是HWC格式,经过Transpose,转换为CHW格式        ])          img = transform(img).astype("float32")    return img# 自定义数据读取器class Reader(Dataset):    def __init__(self, data, is_val=False):        super().__init__()        # 在初始化阶段,把数据集划分训练集和测试集。由于在读取前样本已经被打乱顺序,取20%的样本作为测试集,80%的样本作为训练集。        self.samples = data[-int(len(data)*0.2):] if is_val else data[:-int(len(data)*0.2)]    def __getitem__(self, idx):        # 处理图像        img_path = self.samples[idx][0]          # 得到某样本的路径        img = Image.open(img_path)        if img.mode != 'RGB':            img = img.convert('RGB')        img = preprocess(img)                    # 数据预处理--这里仅包括简单数据预处理,没有用到数据增强        # 处理标签        label = self.samples[idx][1]             # 得到某样本的标签        label = np.array([label], dtype="int64") # 把标签数据类型转成int64        return img, label    def __len__(self):        # 返回每个Epoch中图片数量        return len(self.samples)# 生成训练数据集实例train_dataset = Reader(data_list, is_val=False)# 生成测试数据集实例eval_dataset = Reader(data_list, is_val=True)# 打印一个训练样本# print(train_dataset[1136][0])print(train_dataset[1136][0].shape)print(train_dataset[1136][1])# 查看划分后的样本量print('训练集样本量: {},验证集样本量: {}'.format(len(train_dataset), len(eval_dataset)))

       

(3, 224, 224)[10]训练集样本量: 1493,验证集样本量: 373

       

ColorJitter

class paddle.vision.transforms.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0, keys=None) 随机调整图像的亮度,对比度,饱和度和色调。

参数

brightness(float) – 亮度调整范围大小,会从给定参数后的均匀分布[max(0,1 – brightness), 1 + brightness]中随机选择进行实际调整,不能是负数。

contrast(float) – 对比度调整范围大小,,会从给定参数后的均匀分布[max(0,1 – contrast), 1 + contrast]中随机选择进行实际调整,不能是负数。

saturation(float) – 饱和度调整范围大小,,会从给定参数后的均匀分布[max(0,1 – saturation), 1 + saturation]中随机选择进行实际调整,不能是负数。

hue(float) – 色调调整范围大小,,会从给定参数后的均匀分布[-hue, hue]中随机选择进行实际调整,参数值需要在0到0.5之间。

keys (list[str]|tuple[str], optional) – 与 BaseTransform 定义一致。默认值: None。

RandomHorizontalFlip/RandomVerticalFlip

class paddle.vision.transforms.RandomHorizontalFlip(prob=0.5, keys=None) 基于概率来执行图片的水平翻转;

class paddle.vision.transforms.RandomVerticalFlip(prob=0.5, keys=None) 基于概率来执行图片的垂直翻转。

参数

prob (float) – 图片执行水平/垂直翻转的概率,默认值为0.5。

keys (list[str]|tuple[str], optional) – 与 BaseTransform 定义一致。默认值: None。

RandomRotate

class paddle.vision.transforms.RandomRotation(degrees, interpolation=’nearest’, expand=False, center=None, fill=0, keys=None)按指定角度范围随机旋转图像。

参数

degrees (sequence|float|int) – 旋转的角度度数范围。 如果度数是数字而不是像(min,max)这样的序列,则会根据degrees参数值生成度数范围(-degrees,+degrees)。

interpolation (str, optional): 插值的方法。 如果这个参数没有设定或者输入图像为单通道,则该参数会根据使用的后端,被设置为 PIL.Image.NEAREST 或者 cv2.INTER_NEAREST。

当使用 pil 作为后端时, 支持的插值方法如下: “nearest”: Image.NEAREST, “bilinear”: Image.BILINEAR, “bicubic”: Image.BICUBIC

当使用 cv2 作为后端时, 支持的插值方法如下: “nearest”: cv2.INTER_NEAREST, “bilinear”: cv2.INTER_LINEAR, “bicubic”: cv2.INTER_CUBIC

expand (bool,可选) – 是否要对旋转后的图片进行大小扩展,默认值: False。

当参数值为True时,会对图像大小进行扩展,让其能够足以容纳整个旋转后的图像。 当参数值为False时,会按照原图像大小保留旋转后的图像。这个扩展操作的前提是围绕中心旋转且没有平移。

center (2-tuple,可选) – 旋转的中心点坐标,原点是图片左上角,默认值是图像的中心点。

fill (int,可选) – 对图像扩展时填充的值。默认值:0。

keys (list[str]|tuple[str], optional) – 与 BaseTransform 定义一致。默认值: None。

建立模型

这里选用 ResNet 残差网络

为简便,这里直接使用残差网络ResNet,并且采用预训练模式。为什么要采用预训练模型呢?因为通常模型参数采用随机初始化,而预训练模型参数初始值是一个比较确定的值。这个参数初始值是经历了大量任务训练而得来的,比如用CIFAR图像识别任务来训练模型,得到的参数。虽然蝴蝶识别任务和CIFAR图像识别任务是不同的,但可能存在某些机器视觉上的共性。用预训练模型可能能够较快地得到比较好的准确度。

在PaddlePaddle2.0中,使用预训练模型只需要设定模型参数pretained=True。值得注意的是,预训练模型得出的结果类别是1000维度,要用个线性变换,把类别转化为20维度。

In [5]

# 定义模型class MyNet(paddle.nn.Layer):    def __init__(self):        super(MyNet,self).__init__()        # self.layer=paddle.vision.models.resnet50(pretrained=True)     # 陆平老师上课选择的模型        # self.layer=paddle.vision.models.resnet152(pretrained=True)    # 讲义中推荐的模型        self.layer=paddle.vision.models.resnet152(pretrained=True)      # 耗时长但精度相对而言高的模型        self.dropout=paddle.nn.Dropout(p=0.5)        self.fc = paddle.nn.Linear(1000, 20)    # 网络的前向计算过程    def forward(self,x):        x=self.layer(x)        x=self.dropout(x)        x=self.fc(x)        return xprint("本项目基于Paddle的版本号为:"+ paddle.__version__)

       

本项目基于Paddle的版本号为:2.0.0

       

应用高阶API训练模型

一是定义输入数据形状大小和数据类型。

二是实例化模型。如果要用高阶API,需要用Paddle.Model()对模型进行封装,如model = paddle.Model(model,inputs=input_define,labels=label_define)。

三是定义优化器。这个使用Adam优化器,学习率设置为0.0001,优化器中的学习率(learning_rate)参数很重要。要是训练过程中得到的准确率呈震荡状态,忽大忽小,可以试试进一步把学习率调低。

四是准备模型。这里用到高阶API,model.prepare()。

五是训练模型。这里用到高阶API,model.fit()。参数意义详见下述代码注释。

In [6]

# 定义输入input_define = paddle.static.InputSpec(shape=[-1,3,224,224], dtype="float32", name="img")label_define = paddle.static.InputSpec(shape=[-1,1], dtype="int64", name="label")# 实例化网络对象并定义优化器等训练逻辑model = MyNet()model = paddle.Model(model,inputs=input_define,labels=label_define)                      # 用Paddle.Model()对模型进行封装optimizer = paddle.optimizer.Adam(learning_rate=0.00005, parameters=model.parameters())# 上述优化器中的学习率(learning_rate)参数很重要。要是训练过程中得到的准确率呈震荡状态,忽大忽小,可以试试进一步把学习率调低

       

100%|██████████| 355826/355826 [00:04<00:00, 71284.76it/s]

       In [7]

# 使用Adam优化器, 学习率为0.00005, 使用交叉熵损失函数, top1与top5精准度配置Accuracy的评估指标model.prepare(optimizer=optimizer,                           # 指定优化器              loss=paddle.nn.CrossEntropyLoss(),             # 指定损失函数              metrics=paddle.metric.Accuracy(topk=(1,5)))    # 指定评估方法# 回调函数使用callback = paddle.callbacks.VisualDL(log_dir='./log_mynet_152')model.fit(train_data=train_dataset,         # 训练数据集          eval_data=eval_dataset,           # 测试数据集          batch_size=128,                   # 一个批次的样本数量(常见的有32、64、128、256)          epochs=50,                        # 迭代轮次(常见的有20、50、100、200)          save_dir="/home/aistudio/lup",    # 把模型参数、优化器参数保存至自定义的文件夹          save_freq=20,                     # 设定每隔多少个epoch保存模型参数及优化器参数          log_freq=100,                     # 打印日志的频率          verbose=1,                        # 日志展示模式          shuffle=True,                     # 是否打乱数据集顺序          callbacks=callback)               # 回调函数使用# 如果运行报错,请退出草稿版,项目栏处切换version1.0版本再运行!

   

炼丹注意事项

我这里拿batch_size=128和epochs=50为例,在20轮后acc_top1的精度在0.88和0.91之间震荡,效果还算是理想。

但如果要使acc_top1精度稳定在0.9以上,可以从调整learning_rate、batch_size、epoch的参数下手。

年轻人,拿好这本《炼丹注意事项》,前路漫漫,开启炼(爆)丹(肝)之旅事不宜迟!

应用已经训练好的模型进行预测

如果是要参加建模比赛,通常赛事组织方会提供待预测的数据集,我们需要利用自己构建的模型,来对待预测数据集合中的数据标签进行预测。也就是说,我们其实并不知道到其真实标签是什么,只有比赛的组织方知道真实标签,我们的模型预测结果越接近真实结果,那么分数也就越高。

预测流程分为以下几个步骤:

一是构建数据读取器。因为预测数据集没有标签,该读取器写法和训练数据读取器不一样,建议重新写一个类,继承于Dataset基类。

二是实例化模型。如果要用高阶API,需要用Paddle.Model()对模型进行封装,如paddle.Model(MyNet(),inputs=input_define),由于是预测模型,所以仅设定输入数据格式就好了。

三是读取刚刚训练好的参数。这个保存在/home/aistudio/work目录之下,如果指定的是final则是最后一轮训练后的结果。可以指定其他轮次的结果,比如model.load(‘/home/aistudio/work/30’),这里用到了高阶API,model.load()

四是准备模型。这里用到高阶API,model.prepare()。

五是读取待预测集合中的数据,利用已经训练好的模型进行预测。

六是结果保存。

In [9]

class InferDataset(Dataset):    def __init__(self, img_path=None):        """        数据读取Reader(推理)        :param img_path: 推理单张图片        """        super().__init__()        if img_path:            self.img_paths = [img_path]        else:            raise Exception("请指定需要预测对应图片路径")    def __getitem__(self, index):        # 获取图像路径        img_path = self.img_paths[index]        # 使用Pillow来读取图像数据并转成Numpy格式        img = Image.open(img_path)        if img.mode != 'RGB':             img = img.convert('RGB')         img = preprocess(img) #数据预处理--这里仅包括简单数据预处理,没有用到数据增强        return img    def __len__(self):        return len(self.img_paths)# 实例化推理模型model = paddle.Model(MyNet(),inputs=input_define)# 读取刚刚训练好的参数model.load('/home/aistudio/lup/final')# 准备模型model.prepare()# 得到待预测数据集中每个图像的读取路径infer_list=[]with open("/home/aistudio/work/testpath.txt") as file_pred:    for line in file_pred:        infer_list.append("/home/aistudio/work/"+line.strip())# 模型预测结果通常是个数,需要获得其对应的文字标签。这里需要建立一个字典。def get_label_dict2():    label_list2=[]    with open("/home/aistudio/work/species.txt") as filess:        for line in filess:            a,b = line.strip("n").split(" ")            label_list2.append([int(a)-1, b])    label_dic2 = dict(label_list2)    return label_dic2label_dict2 = get_label_dict2()# print(label_dict2)# 利用训练好的模型进行预测results=[]for infer_path in infer_list:    infer_data = InferDataset(infer_path)    result = model.predict(test_data=infer_data)[0]  # 关键代码,实现预测功能    result = paddle.to_tensor(result)    result = np.argmax(result.numpy())               # 获得最大值所在的序号    results.append("{}".format(label_dict2[result])) # 查找该序号所对应的标签名字# 把结果保存起来with open("work/result.txt", "w") as f:    for r in results:        f.write("{}n".format(r))

   

以上就是『行远见大』炼丹注意事项——以蝴蝶图像分类为例的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/46837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月7日 20:27:12
下一篇 2025年11月7日 20:31:29

相关推荐

  • 2025合规SAHARA交易所TOP10

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年合规SAHARA交易所TOP10——全球最具监管资质的平台评选 随着全球对数字资产监管逐步明晰,合规性已成为衡量交易所可信度与可持续性的核心指标。对于SAHARA等新兴资产而言,选择合规交易所,不仅保…

    好文分享 2025年12月8日
    000
  • 支持多链SAHARA的交易所推荐_2025年SAHARA跨链兑换首选平台推荐

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年支持多链SAHARA交易所推荐——跨链兑换首选平台TOP5 随着SAHARA生态的拓展,该币种已部署于多个主流区块链(如 Ethereum、BNB Chain、Polygon、Arbitrum 等),…

    2025年12月8日
    000
  • SAHARA安全交易所介绍_2025年零风险SAHARA平台精选

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年SAHARA安全交易所推荐——零风险平台精选 随着SAHARA在全球数字资产市场中的流通日益增加,用户在投资与交易过程中对“安全性”的要求也持续提升。2025年,真正实现资金安全、风控完备、系统稳固的…

    2025年12月8日
    000
  • 欧易交易平台怎么样 虚拟币交易平台对比

    数字资产交易平台是投资者进行加密货币买卖的核心场所。它们如同传统的股票交易所,为用户提供撮合交易、资产存储、充值提现等一系列服务。选择一个合适的平台,对于数字资产的交易体验和资金安全至关重要。不同的平台在服务内容、交易费用、安全性、资产种类以及用户体验等方面存在差异。 欧易交易平台 (OKX) 欧易…

    2025年12月8日
    000
  • 定投收益缩水!以太坊质押APY降至3.6%的应对策略

    近期以太坊质押的年化收益率(APY)降至约3.6%,这让许多寻求稳定收益的参与者感到收益缩水。本文将详细阐述一种结合了定投(DCA)和流动性挖矿的组合策略,旨在应对单一质押收益下降的问题。通过讲解这套组合策略的操作过程,为您提供一个优化“躺赚”收益的参考方案。 2025以太坊交易平台官网注册地址推荐…

    2025年12月8日 好文分享
    000
  • 2025年MEME币交易主战场:热门平台交易量排行榜

    进入2025年,加密货币市场展现出与以往截然不同的活力,其中MEME币板块的崛起尤为引人注目。这些源于互联网文化、由社区驱动的数字资产,已经从边缘化的玩笑演变为一股不可忽视的金融力量。它们不再仅仅是投机者的乐园,更成为了衡量市场情绪和散户参与度的重要指标。强大的社区共识和病毒式的社交媒体传播,是ME…

    2025年12月8日 好文分享
    000
  • 新兴SAHARA交易所评测_2025年SAHARA潜力黑马平台

    一键直达|2025主流加密资产交易所平台 Binance币安 Huobi火币 欧易OKX 2025年新兴SAHARA交易所评测——潜力黑马平台深度解析 随着SAHARA资产在市场上的持续走热,一批新兴交易所迅速崛起,凭借创新的产品设计、灵活的合规策略和差异化服务,成为投资者关注的“潜力黑马”。本文精…

    2025年12月8日
    000
  • 交易所平台可靠性参考:2025年持续高交易量App观察

    进入数字资产交易领域,选择一个可靠的平台是投资者保障资产安全与提升交易效率的关键。当前市场中,众多交易所凭借其庞大的用户基础、深厚的市场流动性以及完善的产品矩阵,构建了各自独特的竞争优势。平台的可靠性并非单一维度可以衡量,它综合了技术安全、资产储备、合规水平、用户体验等多方面因素。交易量作为一个直观…

    2025年12月8日 好文分享
    000
  • 必安安卓版安装教程 手机端Binance APP最新下载链接

    币安(binance)是全球知名的加密货币交易平台,为全球用户提供广泛的数字资产交易及相关服务。作为世界领先的数字资产交易平台,币安致力于提供安全、便捷、高效的交易体验。 官方下载地址: 币安交易所详细介绍 1. 交易品种丰富:币安提供极其丰富的数字资产交易对,涵盖了比特币(BTC)、以太坊(ETH…

    2025年12月8日
    000
  • 必安交易所APP下载 官方正版Binance安装包获取方式

    必安交易所APP下载 官方正版Binance安装包获取方式 必安交易所,是全球领先的数字资产交易平台之一,为用户提供广泛的加密货币交易及相关服务。平台以其强大的技术基础、深厚的市场流动性、多样的交易产品和严格的安全措施而闻名,服务于全球数百万用户,支持多种主流及创新型数字货币的交易。 官方下载地址:…

    2025年12月8日
    000
  • 2025年主流交易所币种丰富度与交易量排行榜

    进入2025年,全球数字资产市场呈现出高度活跃与专业化的竞争格局。交易所作为连接用户与数字资产的核心枢纽,其重要性不言而喻。衡量一家交易所综合实力的关键指标,主要集中在其币种丰富度与市场交易量上。币种的广度与深度决定了交易所能否满足不同风险偏好用户的投资需求,从主流的价值币到新兴的潜力项目,全面的资…

    2025年12月8日 好文分享
    000
  • 币安登录入口手机版 快速进入Binance官网交易平台

    币安是全球知名的数字资产交易平台,为用户提供安全、稳定、多样的加密货币交易服务。平台凭借其先进的技术架构、丰富的产品线和庞大的用户基础,在全球范围内享有盛誉,是众多加密货币投资者首选的交易平台之一。 官方下载地址: 币安交易平台详细介绍 1. 全球领先的交易体量与用户覆盖: 币安作为全球交易量最大的…

    2025年12月8日
    000
  • 稳定币如何实现1:1锚定? 新手购买稳定币全攻略

    稳定币是一种加密货币,其价值被设计成与某种稳定资产(通常是法币,如美元)保持1:1的锚定关系。它们的出现,旨在结合加密货币的去中心化、无国界等特性,同时规避传统加密资产如比特币、以太坊等的价格剧烈波动性。 稳定币的锚定机制 1. 法币抵押型稳定币。 这类稳定币的价值由等值的传统法币储备支持。发行方声…

    2025年12月8日
    000
  • 币安iOS版如何安装 苹果手机Binance官方APP下载指南

    币安iOS版如何安装 苹果手机Binance官方APP下载指南 币安作为全球知名的加密货币交易平台,凭借其庞大的交易量和丰富的数字资产种类,服务于全球数千万用户。它提供一站式的加密货币交易与生态服务,是数字资产领域的重要参与者。 官方下载地址: 交易所核心特点与优势 1. 币安提供极为广泛的加密货币…

    2025年12月8日
    000
  • 2025年交易所24小时交易峰值:哪些平台市场最活跃?

    在数字资产的世界里,交易平台的活跃度是衡量其市场地位、流动性深度与用户信任度的核心标尺。24小时交易峰值,这个看似简单的数字,背后浓缩了一个平台的综合实力。它不仅反映了市场在特定时间内的热度与资金流向,更揭示了平台在资产多样性、交易引擎性能、风险控制体系以及全球用户基础等多个维度的竞争力。当巨量的买…

    2025年12月8日 好文分享
    000
  • 什么是NodeOps(NODE)?值得投资吗?NodeOps(NODE)项目全面介绍

    目录 简要事实:NodeOps(NODE)概览NodeOps 是什么?NODE 代币有多少?NODE 代币有何作用?NodeOps 的核心产品和服务NodeOps(NODE)与以太坊(ETH):两层的故事NodeOps背后的技术团队与起源NODE 是否是一项潜在的优质投资?平衡的观点潜在优势需要考虑…

    2025年12月8日 好文分享
    000
  • 比特币积累策略:为什么市场时机是傻瓜的差事

    忘记市场时间,专注于积累比特币。罗伯特·基亚萨基(Robert Kiyosaki)和趋势等专家表明,稳定的积累比追逐价格下跌。 比特币积累策略:为什么市场时机是傻瓜的差事 在加密人惊的世界中,一件事仍然很清楚:比特币将留在这里。尽管每个人都在试图预测下一个大幅下降或激增,但越来越多的声音合唱倡导更简…

    2025年12月8日
    000
  • 被低估的加密代币:计算令牌窃取节目吗?

    计算代币因其在人工智能和分布式计算领域的潜力而逐渐受到关注,但在与gamefi及传统金融的对比中,它们是否仍被低估? 被低估的加密资产:计算代币正悄然崛起? =================== 加密市场正在升温,但并不是每种代币都获得同等的关注。尽管GameFi代币往往因其前景而被高估,但另一类…

    2025年12月8日
    000
  • Apple,Openai和Siri的AI大修:纽约的一分钟技术戏剧

    据报道,苹果公司正在与openai和anthropic展开对话,希望借助先进的ai技术对siri进行重大升级。本文将探讨这一潜在变革及其对用户可能带来的影响。 苹果正在加速追赶AI浪潮,而Siri正面临巨大的升级压力。消息称,苹果有意携手Openai与Anthropic,为Siri带来一次深度重塑。…

    2025年12月8日
    000
  • 比特币ETF,机构投资者和40亿美元:加密货币的新时代?

    机构投资者正在将数十亿美元投入到比特币ETF中,表明尽管价格停滞,但对加密货币的长期潜力的信心。是什么推动了这一趋势? 哟,检查一下。比特币ETF很热,机构投资者正在抛弃认真的现金 – 例如40亿美元的热量。有什么交易?让我们分解。 40亿美元的赌注:机构投资者和比特币ETFS 尽管比特…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信