ARJ_DenseNet BMR模型训练

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析 把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。 阅读详情

废话不多数,模型训练代码

densenet_arj_BMR.py

:

import time

from tensorflow.keras.applications.xception import Xception
from tensorflow.keras.applications.densenet import DenseNet169
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import tensorflow.keras as keras
from arj_t.plt_graph import show_graph
from common_para import train_dir, val_dir, station, EPOCHS_1,EPOCHS_2, batch_size, CLASS_WEIGHT, classes

input_shape = (224, 224)
date_ = time.strftime('%Y%m%d', time.localtime())
cpkt_path = f'./ckpt/ARJ_Densenet_ckpt{station}_20231017-1.h5'
model_path = f'./ckpt/ARJ_Densenet_MODEL{station}_{date_}.h5'


class ArjDensenetModel(object):

    def __init__(self):
        self.base_model = DenseNet169(weights='imagenet', include_top=False)

        # 泛化能力不行,进行图像增强测试
        self.train_gen = ImageDataGenerator(rescale=1.0 / 255.0,
                                            # rotation_range=45,
                                            # width_shift_range=0.2,
                                            # height_shift_range=0.2,
                                            # brightness_range=(0, 0.3),
                                            # shear_range=0.2, # 浮点数。剪切强度(以弧度逆时针方向剪切角度)
                                            # zoom_range=[0.5, 1.5],  # 小于1.0的缩放将放大图像,大于1.0的缩放将缩小图像。
                                            # horizontal_flip=True,
                                            # vertical_flip=True,
                                            # fill_mode='constant',
                                            # cval=0
                                            )

        # self.train_gen = ImageDataGenerator(rescale=1.0 / 255.0)
        self.val_gen = ImageDataGenerator(rescale=1.0 / 255.0)

    # 获取本地训练和验证图片,生成generator
    def get_local_data(self):
        self.train_gen = self.train_gen.flow_from_directory(
            directory=train_dir,
            target_size=input_shape,
            batch_size=batch_size,
            class_mode='binary',  # binary 改为 categorical
            shuffle=True,
            # save_to_dir=r'D:\AOI Gray Image-OA\dataset\BMR\train_trans2',
            # save_format='jpg',
            # save_prefix='trans_'
        )
        self.val_gen = self.val_gen.flow_from_directory(
            directory=val_dir,
            target_size=input_shape,
            batch_size=batch_size,
            class_mode='binary',  # binary 改为 categorical 2022/5/15
            shuffle=True
        )
        return None

    def refine_basemode(self):
        """
        获取VGG16 basemode
        只获取全连接层以前的卷积和池化层,并进行参数冻结,也就是使用原有训练好的参数
        自主增加隐藏层和全连接层进行训练,获得目标模型
        :return:
        """
        # 获取除全连接层以外的层数,no-top model
        x = self.base_model.outputs[0]
        # 加入全局池化、隐藏层、全连接层
        x = keras.layers.GlobalAveragePooling2D()(x)
        x = keras.layers.Dense(2048, activation='relu')(x)
        # x = keras.layers.BatchNormalization()(x)
        x = keras.layers.Dense(1024, activation='relu')(x)
        out = keras.layers.Dense(2, activation='softmax')(x)

        # 生成新的模型
        new_model = keras.models.Model(inputs=self.base_model.inputs, outputs=out)

        # 冻结vgg模型原有参数
        self.freeze_base_model()

        # 对new_model进行编译
        # 学习效果不佳,初始学习率加大尝试
        # 初始学习率0.01->0.001
        opt = keras.optimizers.Adam(learning_rate=0.001)
        new_model.compile(
            # optimizer=opt,  # 优化器
            # # 因为class_mode使用了categorical, 此时返回one-hot编码标签
            # # 那么这里就需要使用categorical_crossentropy,多类对数交叉熵损失计算
            # # 如果class_mode使用binary, 此时返回1D的二值标签,loss就需要使用sparse_categorical_crossentropy
            # loss='sparse_categorical_crossentropy',  # 使用交叉熵损失函数 分类
            # metrics=['accuracy']
            # binary_crossentropy与sigmoid联合使用二分类
            # categorical_crossentropy与softmax联合使用
            optimizer='adam',
            loss='sparse_categorical_crossentropy',
            metrics=['accuracy']
        )

        return new_model

    # 冻结模型训练层数
    def freeze_base_model(self):
        for layer in self.base_model.layers:
            layer.trainable = False
        return None

    # # 对new_model进行training
    def fit(self, model):
        # 获取本地数据
        self.get_local_data()

        # 定义checkpoint
        ckpt = keras.callbacks.ModelCheckpoint(
            filepath=cpkt_path,
            monitor='val_accuracy',
            save_freq='epoch',
            save_weights_only=True,
            save_best_only=True
        )

        # 早停法用起来
        el1 = keras.callbacks.EarlyStopping(
            monitor='val_accuracy',
            patience=15,
            verbose=2,
            mode='auto'
        )

        # 定义学习率缩小规则
        rc1 = keras.callbacks.ReduceLROnPlateau(
            monitor='val_accuracy',
            factor=0.1,  # 学习率缩小倍数 new_lr = lr*factor
            patience=5,  # 耐心吗,5次迭代不增加就缩小学习率
            mode='auto',
            verbose=1,  # 1代表更新信息,0代表不更新
            # epsilon=0.0001,  # 确认是否进入平原区
            min_lr=0,
            cooldown=0
        )

        # 模型训练
        # 加入class_weight权重

        # 暂时注释。
        his1 = model.fit(self.train_gen, validation_data=self.val_gen,
                         epochs=EPOCHS_1, callbacks=[ckpt, rc1, el1])

        # his1 = model.fit(self.train_gen, validation_data=self.val_gen,
        #                  epochs=EPOCHS_1, callbacks=[ckpt, rc1, el1], class_weight=CLASS_WEIGHT)

        print('first step end')

        # 解冻所有layer,进行参数微调
        for layer in model.layers:
            layer.trainable = True

        # 早停法用起来
        el2 = keras.callbacks.EarlyStopping(
            monitor='val_accuracy',
            patience=11,
            verbose=2,
            mode='auto'
        )

        # 定义学习率缩小规则
        rc2 = keras.callbacks.ReduceLROnPlateau(
            monitor='val_accuracy',
            factor=0.1,  # 学习率缩小倍数 new_lr = lr*factor
            patience=5,  # 耐心吗,5次迭代不增加就缩小学习率
            mode='auto',
            verbose=1,  # 1代表更新信息,0代表不更新
            # epsilon=0.0001,  # 确认是否进入平原区
            min_lr=0,
            cooldown=0
        )

        opt = keras.optimizers.Adam(learning_rate=0.001)
        model.compile(
            optimizer=opt,
            loss='sparse_categorical_crossentropy',
            metrics=['accuracy']
        )

        # 模型训练
        # model.load_weights(cpkt_path)
        his2 = model.fit(self.train_gen, validation_data=self.val_gen,
                         epochs=EPOCHS_2, callbacks=[ckpt, rc2, el2], class_weight={0: 1, 1: 1.5})

        # # 模型训练
        # his2 = model.fit(self.train_gen, validation_data=self.val_gen,
        #                  epochs=EPOCHS_2, callbacks=[ckpt, rc2, el2], class_weight={0: 1, 1: 2, 2: 3})

        print('END STEP')
        return his1, his2


if __name__ == '__main__':
    arj_model = ArjDensenetModel()
    model = arj_model.refine_basemode()
    his1, his2 = arj_model.fit(model)
    # # 保存模型
    # model.save(model_path)
    show_graph(his1)
    show_graph(his2)

common_para.py代码

train_dir = r"D:\new_data\BMR_TRAIN\train"
val_dir = r"D:\new_data\BMR_TRAIN\validate"
station = '_ALL_BMR'
batch_size = 32
EPOCHS_1 = 10
EPOCHS_2 = 40
CLASS_WEIGHT = {0: 1., 1: 1., 2: 1.}
threshold_value = 0
classes = 2

模型预测代码 

BMR_IPS_135K_predict.py
import os

import numpy as np
from tensorflow.keras.preprocessing.image import load_img, img_to_array

import densenet_arj_BMR
import inceptionRestnet_arj_t
import resnet101_arj_BMR
import xception_arj_BMR

MODEL_NAME = 'densenet'

val_path = r'D:\AOI Gray Image-OA\dataset\case1\135K-ISR-IPS\validate'
# val_path = r'D:\AOI Gray Image-OA\dataset\error\W_to_G'
other_path = r'D:\AOI Gray Image-OA\AOI IMAGE-20220513\A6Q\ISR\复判后-G'
test_path = r'D:\new_data\BMR表外测试\BMR\A1A\P'
# TARGET_SIZE = (299, 299)
# DEFECT_TYPE = 'P'
# error_path = fr"D:\AOI Gray Image-OA\dataset\BMR\{MODEL_NAME}"


def get_ckptpath_model():
    # arj_model = tensorflow.keras.models.Model()
    ckpt_path = ''
    # target_size = (224, 224)
    if MODEL_NAME == 'xception':
        ckpt_path = xception_arj_BMR.cpkt_path
        arj_model = xception_arj_BMR.ArjResnet101Model()
        target_size = xception_arj_BMR.input_shape
    elif MODEL_NAME == 'inceptionRestnet':
        ckpt_path = inceptionRestnet_arj_t.cpkt_path
        arj_model = inceptionRestnet_arj_t.ArjInceptionRestnetModel()
        target_size = inceptionRestnet_arj_t.input_shape
    elif MODEL_NAME == 'densenet':
        ckpt_path = densenet_arj_BMR.cpkt_path
        arj_model = densenet_arj_BMR.ArjDensenetModel()
        target_size = densenet_arj_BMR.input_shape
    elif MODEL_NAME == 'resnet101':
        ckpt_path = resnet101_arj_BMR.cpkt_path
        arj_model = resnet101_arj_BMR.ArjResnet101Model()
        target_size = resnet101_arj_BMR.input_shape

    return ckpt_path, arj_model, target_size


# 获取想要预测的图片绝对路径,包含文件名
def get_img_paths(defect_type, path):
    img_path = os.path.join(path, defect_type)
    img_paths = []
    for root, dirs, files in os.walk(img_path):
        for file in files:
            # print(file[-3:])
            if file[-3:] == 'jpg':
                img_paths.append(os.path.join(root, file))
    return img_paths


def bmr_ips_predict(img_paths, error_path, defect_type='G'):
    ckpt_path, arj_model, input_shape = get_ckptpath_model()
    model = arj_model.refine_basemode()
    print(ckpt_path)
    model.load_weights(ckpt_path)
    print(model.summary())

    predict_dict = {0: 'G', 1: 'P', 2: 'W'}

    # 加载图片,预测
    white_cnt = 0
    good_cnt = 0
    repair_cnt = 0

    threshold_ls = []
    for img_path in img_paths:
        img_arr = load_img(img_path, target_size=input_shape)
        img = img_arr
        # print(img_path)
        # 转化为矩阵
        img_arr = img_to_array(img_arr)
        # print(img.shape)
        # 归一化
        # img_arr = preprocess_input(img_arr)

        img_arr /= 255.
        # print(type(img_arr))
        # img_arr = preprocess_input(img_arr)

        # img_arr /= 127.5
        # img_arr -= 1.


        # 形状修改
        img_arr = img_arr.reshape(1, img_arr.shape[0], img_arr.shape[1], img_arr.shape[2])
        # print(img.shape)
        # print(img_arr)

        y_predict = model.predict(img_arr)

        index = np.argmax(y_predict)
        # 加入阈值
        threshold = y_predict[0][index]
        # print(img_path.split('\\')[-1])
        # print(y_predict[0], ' >> ', threshold)
        # threshold_ls.append(threshold)
        # print(y_predict)
        y_predict = predict_dict[index]

        # print(index)
        # print(y_predict)

        # if index == 0:
        #     good_cnt += 1
        # else:
        #     repair_cnt += 1

        # 保存判错的图片
        # 预测结果G

        # save_img_name = str(round(threshold,2))+'_'+img_path.split('\\')[-1]
        save_img_name = img_path.split('\\')[-1]
        if index == 0:
            # 加入阈值调节判G能力
            if threshold > 0:
                good_cnt += 1
                # print(good_cnt)
                # print(img_path[-10:])
                # 如果原本P文件夹
                if defect_type == 'P':
                    threshold_ls.append(threshold)
                    img.save(os.path.join(error_path, 'AI_P_TO_G', save_img_name))
                    os.remove(img_path)
                # 如果原本W文件夹
                if defect_type == 'W':
                    img.save(os.path.join(error_path, 'AI_W_TO_G', save_img_name))
                    os.remove(img_path)
            else:
                repair_cnt += 1
        elif index == 1:
            repair_cnt += 1
            if defect_type == 'G':
                threshold_ls.append(threshold)
                img.save(os.path.join(error_path, 'AI_G_TO_P', save_img_name))
                os.remove(img_path)
            if defect_type == 'W':
                img.save(os.path.join(error_path, 'AI_W_TO_P', save_img_name))
                os.remove(img_path)
        elif index == 2:
            white_cnt += 1
            if defect_type == 'G':
                img.save(os.path.join(error_path, 'AI_G_TO_W', save_img_name))
                os.remove(img_path)
            if defect_type == 'P':
                img.save(os.path.join(error_path, 'AI_P_TO_W', save_img_name))
                os.remove(img_path)
        else:
            print('还有第四种可能??!!')
        # print(y_predict)
        # print('**************************')

    # pd.DataFrame(data=threshold_ls).to_csv('./threshold.csv', encoding='utf-8')
    print(threshold_ls)
    print('good_cnt :  %d' % good_cnt)
    print('repair_cnt :  %d' % repair_cnt)
    # print('white_cnt :  %d' % white_cnt)


# if __name__ == '__main__':
#     paths = get_img_paths(DEFECT_TYPE, test_path)
#     bmr_ips_predict(paths,error_path)

模型总预测代码

predict_all.py

import BMR_IPS_135K_predict

# 此程序用来进行所有模型预测2023/10/17

img_path = r'D:\new_data\BMR_TRAIN\test\WHITE'

DEFECT_TYPE = 'P'

paths = BMR_IPS_135K_predict.get_img_paths(DEFECT_TYPE, img_path)

BMR_IPS_135K_predict.bmr_ips_predict(paths, img_path, DEFECT_TYPE)

【无标题】MACD转变 ‌为了跨股票比较‌:请使用 ‌方案一(对数 MACD)‌。这是唯一能在数学上保证“走势一样(百分比涨幅一样),指标数值就一样”的方法。‌为了观察当前股票的相对强度‌:方案一得出的数值虽然很小,但其‌形态、金叉死叉位置、背离结构‌与传统 MACD 完全一致,不影响技术分析的使用习惯,只是刻度尺变了。‌可视化技巧‌:在画图时,由于对数 MACD 数值较小,建议将 Y 轴刻度自动调整,或者将结果乘以 100 或 1000 以便观察。 阅读详情

相关推荐

树莓派上基于ONNXRuntime与Qt的C++模型部署实战指南

本文详细介绍了在树莓派上使用ONNXRuntime与Qt进行C++模型部署的完整流程。从环境配置、依赖安装到交叉编译优化,再到Qt界面集成与ARM架构性能调优,提供了实战指南和常见问题解决方案,帮助开发者高效完成边缘设备上的AI应用部署。

ik6789012的博客 337

Python+Agent入门笔记(二):列表推导式、模块和异常,这些写 Agent 前得会

接上一篇《Python+Agent入门笔记(一)》。基础语法跑通之后,这篇聊几块日常写脚本绕不开的东西。还是按 JS/Go 开发者的视角写,尽量记录我实际卡过的地方。

qq_41241612的博客 428

从Excel到‘一张图’办案:手把手教你用AbutionGraph构建公安经侦知识图谱(含数据建模避坑指南)

本文详细介绍了如何利用AbutionGraph时序图数仓技术,将公安经侦领域的Excel、银行流水等碎片化数据转化为可交互的知识图谱。通过数据清洗、实体关系模型设计、时序数据处理等步骤,实现高效智能分析,提升办案效率。特别包含数据建模避坑指南和实战案例,助力公安金融案件侦破。

weixin_33702545的博客 340

微调数据集构建:清洗、标注、格式转换完整流程

摘要解决微调数据直接抓取导致的噪声污染、模式崩溃与Token错位问题。适用于需为大模型SFT阶段构建高质量训练集的数据与算法工程师。读完可获得包含启发式清洗、MinHash去重及ChatML格式对齐的完整可运行数据流水线。关键词数据清洗、MinHash去重、数据标注、ChatML、SFT数据集、数据配比背景与问题大模型微调效果的上限由数据质量决定,直接使用未经处理的原始语料极易引发模型复读、幻觉与指令遵循能力退化。

2402_85729970的博客 485

Rasa Core开发指南

文章目录1. Rasa Core简介1.1 Rasa Core消息处理流程1.2 安装Rasa Core2. Dialogue模型训练2.1 Story样本数据2.2 Domain2.2.0 intents2.2.1 actions2.2.2 templates2.2.3 entities2.2.4 slots3 .训练和使用对话模型3.1 训练对话模型3.2 使用对话模型4. 搭建CustomA...

老蒋也疯狂 1万+

Rclone替代RaiDrive?零广告免费挂载Alist WebDAV到Windows资源管理器(含自启脚本)

本文详细介绍了如何使用开源工具Rclone替代RaiDrive,实现零广告、全免费的Alist WebDAV挂载方案。通过深入解析配置参数、提供完整的自启动解决方案和解决常见问题,帮助用户在Windows资源管理器中高效管理云存储,提升使用体验。

weixin_33709364的博客 631

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 204

2021英伟达暑期实习面经(芯片设计)

2021英伟达暑期实习面经(芯片设计前端/DFT) 准备了将近一个月,终于赶在三月的最后一天拿到了offer,暑期实习算是上岸了,后面还有阿里/华为等一些国内公司的面试,但既然拿到了nv的offer,后面的先就当积累面试经验吧~ 网上关于nv的实习or秋招面经很少,硬件岗的更少(约等于没有好吧)。之前准备面试的时候,在网上找了半天,好像就只在牛客网上见过一篇关于nv硬件岗的面经,幸好当时认真看了哈哈。所以既然幸运上岸了,想趁自己还记得,record一下,希望可以帮到有缘人呀~ 好了,废话不多说,开始正题。

Hadleysjtu的博客 1万+

Python3 协程:异步编程的核心机制与实战

协程是解决I/O密集型任务等待瓶颈的高效机制,相比线程更轻量、无锁开销。从yield到async/await的演进,使异步编程语义清晰、易于理解。通过async/await可实现并发执行多个任务(如gather、create_task),显著提升网络请求、爬虫等场景性能。关键在于使用异步库(如aiohttp)替代同步库,避免阻塞事件循环。合理控制超时与并发数,才能发挥协程最大优势。

Lxn2zh的博客 159

3D深度饼图的QT实现

首先,我们需要创建一个QT项目并创建一个窗口,用于显示我们的饼图。在QT Creator中,选择创建一个新的QT Widgets应用程序项目,并创建一个新的窗口类。在本文中,我将介绍如何使用QT实现一个3D深度饼图(Pie 3D)的可视化效果。在构造函数中,我们将创建一个饼图(QChartView)并设置饼图的数据。这是一个简单的示例,您可以根据需要自定义和扩展代码来创建更复杂的饼图。现在,我们已经完成了3D深度饼图的QT实现。您将看到一个具有相应数据的3D深度饼图显示在窗口中。3D深度饼图的QT实现。

CodeJolt的博客 277

Spring 核心技术解析【纯干货版】- I:Spring 基础模块 Spring-Core 模块精讲

Spring-Core 模块,是 Spring 核心容器模块之一。虽然 “Core” 本身就有 “核心的,重要的部分” 的含义,但是它并非是实现(常被我们说为 Spring 核心机制)IOC / AOP 的模块。Spring 中的 IOC 机制,主要来自于 BeanFactory 容器和 ApplicationContext 容器,这二者分别由同为核心容器模块的 Spring-Bean 模块 和 Spring-Context 模块所提供。

栗筝i的博客 2522

python如何控制浏览器

Python 可以通过 Selenium、Playwright 等工具实现浏览器自动化,从打开网页到执行复杂交互操作均可脚本化完成。Selenium生态成熟

2601_96797912的博客 74

多模态轨迹预测:行人、车辆的交互式推理

多模态轨迹预测:行人、车辆的交互式推理 ,人工智能,计算机视觉,大模型,AI,本文围绕多模态轨迹预测中行人与车辆的交互式推理展开,介绍了其定义,即综合多种信息预测交通参与者未来多种轨迹。涵盖基础概念如轨迹表示、模态、交互关系,技术框架包括数据处理、特征提取、预测模型(物理、机器学习、深度学习模型等)及结果评估。还探讨了交互式推理方法、面临的不确定性处理等挑战、应用场景、未来发展方向、相关工具及实际案例,展现了该技术在智能交通等领域的重要性与发展潜力。​

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 14万+

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 264

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

torch.compile 差异仅 1e-6,边界样本预测为何翻转

torch.compile 加速后输出与 eager 不一致,部分预测翻转。逐层对比与 graph break 分析定位到动态分支翻转根因。容差回归仅适用于无分支翻转场景,零容忍场景应禁用编译。

昨日种种,皆成今我。今日种种,皆成新我。 157

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python 100讲课程导航:第08篇《Python input 与类型转换:构建可靠的交互程序》

本文详解Python中input()的返回类型为字符串,强调必须通过int()、float()等函数进行类型转换。重点讲解了输入验证的重要性,结合try-except处理ValueError等异常,实现可靠的交互程序。通过购物预算计算器实战,演示如何防范非法输入、处理边界值,并推荐使用Decimal避免浮点精度问题,提升程序健壮性。

铭渊老黄 130

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【Python】国家中小学智慧教育平台电子教材批量下载与 PDF 合成实战

成果:两本语文电子课本(一年级上册 118 页 / 23MB、三年级上册 130 页 / 30.3MB),合计 248 页、约 54MB,单本下载加合成 40~60 秒,PDF 页数校验全部通过。经验教训SPA 站点的数据接口优先从 bundle 里挖,比抓页面稳得多;资源链接要按 private/public 分组看待,只取平台公开部分;页数、目录名这类“可推断”的信息,永远用实际响应验证一次;受限环境里“能不能跑浏览器”要在方案定稿前确认。后续计划:这版 PDF 是图片版,没有文字层;

木头大左的博客 118

魔塔社区微调训练Qwen2-1.5B-Instruct模型并烧录到‌RK3568开发板教程

本文基于Ubuntu 22.04 + CUDA 13.0.3环境,使用LLaMA-Factory框架对Qwen2-1.5B-Instruct模型进行LoRA微调,训练儿童故事生成专用模型。通过配置qwen模板、制作alpaca格式数据集、执行sft训练并合并LoRA权重,最终将模型转换为GGUF格式,并量化为Q4_K_M以适配RK3568嵌入式平台。全程支持国产镜像加速下载与显存优化,实现高效轻量化部署。

浅清秋慕夏的博客 182

【回眸】DeepSeek V4.1 Flash 快速上手与实战

本文介绍如何高效本地部署开源大模型,通过现代化工具链实现分钟级环境搭建。聚焦显存优化、一键安装、代码调用与多轮对话实现,解决“显存不足”“连接超时”等痛点,提供参数调优与结构化输出技巧,助力开发者在离线场景下快速构建稳定、高效的本地推理系统。

啤酒鸭的物联网开发记录博客 219

智叟云集-手机证据抓取系统的工程结构与应用入口

本文系统阐述手机证据抓取系统的工程结构与应用入口,涵盖四大层面:工程目录划分(Android、Python服务、Web页面、测试与构建工具);Android组件通过Manifest声明可启动页面,主界面由MainActivity管理;Python服务通过run.py解析参数并启动FastAPI应用,支持远程访问;浏览器页面采用HTML/CSS/JS分离架构,静态资源通过路径关联,实现动态交互。各模块分工明确,协同构建可运行的采集系统。

2301_77178996的博客 228

利用python中matplotlib.pyplot库绘制图

plt.plot(x,y) # x,y是每个点的坐标,plot()把每个点按顺序画折线。plt.subplots(2,2)表示绘制2*2的子图布局,axs[0,0]表示在第0行第0列绘制子图...coordinates_i[:,0]表示获取每一行(每一个spot)的第0列(x坐标)coordinates_i[:,1]表示获取每一行(每一个spot)的第0列(y坐标)plot.subplot(2,2,1) 表示子图布局是2*2的,开始绘制第一个。也可以导入数据绘制。可以设置color属性,设置颜色。

qq_46147236的博客 99

【随笔】KV缓存量化:省下的显存,要付出多少数值误差

用可运行量化器解释位宽、比例信息、分组和离群值的关系,核算KV缓存实际载荷,并给出Transformers配置与容量、延迟、质量验收方法。

code2cat的博客 447

Spring Boot 自动配置原理

Spring Boot 自动配置由 @EnableAutoConfiguration 导入选择器,读取 jar 中 .imports 候选清单,经去重、排序、排除后逐类做条件判断,通过才注册 Bean。延迟导入让用户 Bean 优先,@ConditionalOnMissingBean 使默认配置让位。失效时查清单和 Negative matches。

2401_89855466的博客 359

【AI】方案设计:通用慢节奏策略游戏大模型智能体流水线开发架构设计——基于 OODA 文件总线与可插拔协议适配层

本方案设计了一种面向慢节奏策略游戏的通用智能体架构,通过C++与Python协同构建协议适配层,实现游戏状态与控制指令的解耦。核心采用文件目录作为唯一总线,基于OODA循环分阶段处理态势感知、研判、决策与执行,支持多协议接入、可审计回放、人在回路干预及自愈容错。大模型仅依赖统一结构化简报与通用指令,具备高兼容性与可扩展性,适用于复杂推演场景。

hknaruto的专栏 162

深度学习毕业设计选题推荐:基于YOLO11的交通标志检测系统设计与实现(Python+Django+Vue3+对接deepseek)

本文设计并实现了一套基于YOLO11的交通标志检测系统,采用B/S架构与前后端分离模式,后端基于Django和Python,前端使用Vue3,集成YOLO11目标检测模型与DeepSeek API,支持图像、视频、摄像头实时检测及批量处理。系统具备用户管理、检测记录查询、数据看板、智能问答与大屏可视化等功能,可精准识别15类交通标志,提升智慧交通中标志识别的自动化与智能化水平。文末提供源码获取链接。

qq_1445749146的博客 288

GitHub 热榜项目:日榜(2026-11-05)

涨星最多的两个项目,一个让智能体通过无障碍树操作桌面应用,一个从企业元数据生成可溯源 SQL。vercel-labs/agent-desktop 用带引用的 JSON 快照让智能体点击、输入,新增 2,470 星;NVIDIA/auto-ontology 生成本体、认证后生成可溯源 SQL,新增 2,050 星。 D4Vinci/Scrapling(+2,005 星)抓网页,JiaFeiMiao-K-Cat/DiscImageStudio(+1,778 星)把图片刻成光盘盘面。有三个项目在给编码智能体配技

u130130的博客 360
上一篇: sklearn线性回归完成多次项函数和正弦函数拟合
下一篇: 基于Scikit-learn的多元线性回归模型构建与验证
路路的小豆
博客等级 码龄10年 1763粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值