-
__iter__必须返回迭代器对象,因Python内置操作依赖__next__和StopIteration;返回列表或错误self会破坏协议;正确方式是返回self(需实现__next__)或新迭代器(如生成器)。
-
swappiness=0不能完全禁用swap,因NUMA下numa_balancing触发zone_reclaim时若vm.zone_reclaim_mode含bit2(值为2/3/6/7),会无视swappiness强制swap;彻底禁用需设vm.zone_reclaim_mode=0并关闭numa_balancing。
-
defusedxml不能直接用于asyncio因为其解析器均为同步阻塞式,会阻塞eventloop;需通过run_in_executor或to_thread在线程池中执行以实现真正并发,同时保留XXE等防护能力。
-
Python构建RESTfulAPI应首选FastAPI,因其自动OpenAPI文档、Pydantic校验和async支持;Flask适用于轻量或存量项目但须补全校验;务必禁用调试模式、遵循HTTP语义、分层认证授权、用Pydantic防御注入等攻击。
-
企业模型调优是围绕业务目标、数据质量、部署约束和迭代机制的工程化闭环,核心是保障模型在真实场景中持续稳定发挥价值。需明确业务导向的调优目标与线上评估口径,分层诊断数据、特征、模型问题,按阶段选择适配手段,并建立含分布监控、影子模式、模型卡片的可持续机制。
-
模块化编程通过拆分功能提升代码可维护性和复用性:一、创建.py文件作为模块并用import导入;二、使用from...import精确导入所需函数;三、将多个模块放入含__init__.py的目录形成包;四、利用__name__=="__main__"控制模块执行行为。
-
ipytest是专为在JupyterNotebook中运行pytest设计的适配工具,解决直接调用pytest导致的ImportError、SystemExit、路径错误等问题,通过内存模块注入和pytestPythonAPI调用实现兼容。
-
torch.cuda.Event比time.time()更准,因其直接捕获GPUkernel启停时刻,避免CPU-GPU异步导致的±10ms误差,精度达±0.02ms;需配对record、同步、预热并确保同stream。
-
直接用PyTorch/TensorFlow线上推理慢,因模型加载、GIL、动态图解释及冗余算子开销;ONNX通过固化模型+轻量运行时绕过Python层成本。转ONNX须固定输入shape、确保tensor操作可追踪、替换自定义op;ORT加速需设CUDAprovider、启用图优化、单线程、输入dtype一致;部署前必验数值一致性与内存生命周期。
-
Flask/FastAPI中logging.basicConfig()不生效是因为框架启动时已配置rootlogger,basicConfig()仅在未配置时生效;应提前显式配置logger或使用框架推荐方式。
-
局部变量仅在函数内部有效,函数结束即销毁,无法被外部访问。1、函数内赋值创建的变量默认为局部变量。2、局部变量不影响同名全局变量。3、赋值前读取局部变量会引发UnboundLocalError。4、局部变量屏蔽同名全局变量,优先使用局部变量。5、可用locals()查看局部变量字典。6、每次函数调用重新初始化局部变量,递归调用中各层独立。7、需跨调用保留状态时应使用类或闭包。8、嵌套函数中需用nonlocal声明以修改外层局部变量,不可用于全局变量。
-
AppRegistryNotReady是Django应用注册未完成时访问模型引发的异常,主因是在django.setup()完成前于模块顶层执行了模型类访问、get_model()、ForeignKey(模型类)等操作,常见于settings.py、urls.py、apps.py或models.py的导入链中过早触发ORM。
-
时间序列喂入LSTM/GRU需构造滑动窗口样本,形状为(batch_size,timesteps,features),归一化须仅在训练集拟合再应用于测试集,避免信息泄露;推荐GRU(units=64,return_sequences=True)降低显存占用,训练时shuffle=False、验证集连续置于训练集后,预测结果需reshape后逆变换还原量纲。
-
swaplevel()仅交换MultiIndex中两个指定层级位置,不增删层或重排全部层级;reorder_levels()才支持按列表顺序重排所有层级;交换后需sort_index()确保索引有序,且仅适用于MultiIndex。
-
在使用train_on_batch()等底层训练方式时,Keras回调(如ModelCheckpoint、EarlyStopping)会因未绑定模型而抛出AttributeError;必须显式调用callback.set_model(model)初始化回调,否则其内部无法访问model.optimizer、model.save_weights()等关键属性。