·
编程学习 ·
194068
基于RCNN的两步检测器精度高,但速度慢,单步检测器如YOLO,SSD速度快,但精度有所降低。作者认为正负样本不平衡是导致单步检测器精度降低的主要愿意,论文对交叉熵损失函数进行改进,降低易分类样本的权值,即Focal loss,使用RetinaNet验证Focal loss。RetinaNet可以超过两步检测器的精度,且速度跟单步检测器差不多。
Focal Loss是动态缩放的交叉熵损失函数,随着正确类的置信度上升缩放因子下降,如下图所示:
损失函数为:
当样本分错时,pt很小,调节因子接近1,损失函数不受影响。当样本很容易分时,pt很大,因子趋于0,这样易分样本的权值下降了。参数γ决定了权值下降的速率,文中选取γ=2
RetinaNet网络结构,特征提取部分采用FPN,Anchors的分配类似RPN,改进后用于多类检测,FPN后有分类子网络和box回归子网络:
实验结果
IsolationForest在生产环境不适合直接用于高吞吐、低延迟的实时流式场景,因其为无监督批处理算法,需完整训练集且无法在线更新模型,实际应采用周期性离线打分或结合轻量代理模型实现近实时响应。 IsolationForest在生产环境是否适合实时异常检测? 不适合直接用于高吞吐、低延迟的实时流...
callable()检查对象是否实现__call__或属可调用类型,返回True仅表示语法上可加括号,不保证调用成功;类本身可调用,其实例需定义__call__才可调用,lambda、函数、内置函数等均返回True,但参数错误或运行时异常仍会导致调用失败。 callable函数的基本行为和常见误判 ...
aiomonitor能发现事件循环卡顿是因为它定期采样事件循环时间与任务栈快照,识别出“某任务运行超阈值(默认1s)”的异常状态,不依赖代码埋点,而是从运行时底层观测;普通日志仅记录主动写入的点,无法捕获静默发生的调度停滞。 为什么aiomonitor能发现事件循环卡顿,而普通日志不行 因为卡顿本质...
hasattr仅能判断属性是否存在,无法区分方法与普通属性;可靠检测可调用方法需三步:hasattr检查存在性、getattr获取值、callable核验可调用性。 hasattr能判断方法是否存在,但不能区分方法和普通属性 直接用hasattr(obj,"method_name")只能告诉你这个名...
标准差法用np.abs(df['col']-mean)>kstd识别异常,需先dropna;IQR法用q1-1.5iqr和q3+1.5*iqr为界,对分布无假设;优先clip截断而非删除,避免破坏数据结构。 用numpy.std和np.abs快速识别标准差异常值 标准差法适合近似正态分布的数据...
PythonWeb应用在Kubernetes中必须暴露语义化HTTP健康端点,livenessProbe和readinessProbe需分离设计、不同逻辑与阈值,否则将导致假活或503事故;tcpSocket探测无效因其仅验证端口可达,不校验业务就绪;慢启动须配startupProbe,且探针端口须...
sys._current_frames不检测死锁,仅提供线程调用栈快照;需人工分析依赖环,结合锁状态、持有者信息及跨层阻塞点综合判断。 死锁检测为什么不能只靠sys._current_frames 直接说结论:sys._current_frames本身不检测死锁,它只是快照当前所有线程的调用栈。你拿...
直接继承tf.keras.losses.Loss最稳妥,因其能完整控制前向计算图、确保梯度正确回传、支持sample_weight及分布式训练;需重写call方法,统一y_true为one-hot,动态计算pt,并将alpha、gamma作为可训练参数参与梯度计算。 为什么直接继承tf.keras....