飞桨常规赛:点击反欺诈预测 - 12月第7名方案_副本
感觉赛题比较难?或许你应该这样想:点击反欺诈 = 二分类任务(波士顿房价降价预测),有木有感觉到简单呢?目前常规赛事基线撰写模板已经对外开放,欢迎开发者贡献更好的基线作品~
请点击此处查看本环境基本用法.
Please click here for more detailed instructions.
转载自AI Studio 项目链接https://aistudio.baidu.com/aistudio/projectdetail/3254541
点击反欺诈预测Baseline
( T i p s : 该 部 分 主 要 为 介 绍 思 路 和 基 线 修 改 指 南 , 实 战 部 分 在 后 半 部 分 单 独 列 出 ) \color{red}{(Tips:该部分主要为介绍思路和基线修改指南,实战部分在后半部分单独列出)} (Tips:该部分主要为介绍思路和基线修改指南,实战部分在后半部分单独列出)
赛题介绍
广告欺诈是数字营销需要面临的重要挑战之一,点击会欺诈浪费广告主大量金钱,同时对点击数据会产生误导作用。本次比赛提供了约50万次点击数据。特别注意:我们对数据进行了模拟生成,对某些特征含义进行了隐藏,并进行了脱敏处理。
MarTech技术已经被广泛应用于商业广告分析与挖掘中,在搜索广告,信息流广告,营销预测,反欺诈发现,商品购买预测,智能创意生成中有广泛的应用。
请预测用户的点击行为是否为正常点击,还是作弊行为。点击欺诈预测适用于各种信息流广告投放,banner广告投放,以及 百度网盟平台,帮助商家鉴别点击欺诈,锁定精准真实用户。
点击跳转至赛题页面
(
T
i
p
s
:
机
器
学
习
框
架
方
面
只
允
许
使
用
飞
桨
深
度
学
习
框
架
哦
)
\color{red}{(Tips:机器学习框架方面只允许使用飞桨深度学习框架哦~)}
(Tips:机器学习框架方面只允许使用飞桨深度学习框架哦 )
基线介绍
运行方式
本次基线基于飞桨PaddlePaddle2.0版本,若本地运行则可能需要额外安装pandas模块。
本地运行
下载左侧文件夹中的”本地运行方案“,解压到本地后修改为英文目录后运行run_model.py
即可开始训练,修改该文件的IS_INFER
参数即可生成推理结果,推理结果文件为result.csv
。(推荐在右上角“文件”->“导出Notebook到py”,这样可以保证代码是最新版本)
AI Studio (Notebook)运行
依次运行下方的cell即可,若运行时修改了cell,推荐在右上角重启执行器后再以此运行,避免因内存未清空而产生报错。
Tips:若修改了左侧文件夹中数据,也需要重启执行器后才会加载新文件。
设计思想
执行流程
- 配置预处理数据方案(选手可以自行设计,默认提供用于Embedding的数据转化和归一化两种方案)
- 生成Embedding所需要的index字典(若选手不使用Embedding则可以跳过该步骤)
- 检查数据是否可以正确读取(可省略,若选手自行修改了Reader部分,务必检查能否读取后再进行下一步操作)
- 开始训练
- 执行预测并产生结果文件
技术方案
在本次赛题中,虽然赛题数据与以往的线性回归任务比较相似,但更像是一个二分类任务(判断欺诈、非欺诈)。 接下来将介绍技术方案中的一些细节问题以及新增method流程。
数据处理方案
我们希望选手在做预处理之前首先判断19个字段属性是什么,然后再决定处理方案。
基
线
默
认
提
供
了
两
种
常
见
的
预
处
理
方
案
(
n
o
r
m
、
E
m
b
e
d
d
i
n
g
)
,
这
些
可
在
“
数
据
预
处
理
−
配
置
”
c
e
l
l
中
进
行
配
置
\color{red}{基线默认提供了两种常见的预处理方案(norm、Embedding),这些可在“数据预处理-配置”cell中进行配置 }
基线默认提供了两种常见的预处理方案(norm、Embedding),这些可在“数据预处理−配置”cell中进行配置
Tips:虽然赛题页面有字段说明,但字段类型仍需选手自行判断。
新增预处理方案
比赛数据集字段过多,为了减轻预处理代码的工作量特编写此方案。
新增步骤如下:
- 可以模仿
baseline_tools.py
中的Data2IdNorm
来实现预处理class
以归一化至0~1处理为例:
假设某字段含有1,2,3,4共计4个值,如果想缩放到0~1之间,可以使用(当前值 - 最小值) / (最大值 - 最小值)方式计算出权重大小。
本示例为了方便起见,直接通过(1 / 最大值)来计算权重,此处可能有一定调优空间。
# ===== Data2IdNorm类 ===== 新增预处理方案 =====
class Data2IdNorm:
def __init__(self, norm_weight):
self.norm_weight = norm_weight # 获取当前字段的归一化权重
def transform_data(self, sample, shape=None, d_type="float32"):
sample *= self.norm_weight # sample为当前index下对应字段的数据,该数据与归一化权重相乘即可进行归一化
sample = value2numpy(sample, shape, d_type) # 将该数据转化为numpy的array对象,value2numpy在baseline_tools.py中已经提供
return sample
def get_method(self):
return self.transform_data # 返回预处理方法
新增预处理方案后,可以在Reader类中找到下方代码段,通过添加elif来注册xxx流程。
# ===== Reader类 ===== 预处理方案注册 =====
for col in self.cols:
if TAGS[col] == "emb":
self.methods[col] = Data2IdEmb(dict_path=emb_dict_path, dict_name=col).get_method()
elif TAGS[col] == "xxx":
self.methods[col] = Data2IdNorm(norm_weight=0.0001).get_method() # 此处假设权重为0.0001
else:
raise Exception(str(TAGS) + "是未知的预处理方案,请选手在此位置使用elif注册")
在TAGS中更改对应预处理策略
TAGS = {'android_id': "emb",
'apptype': "emb",
'carrier': "xxx", # 对应elif TAGS[col] == "xxx"中的xxx
...
backbone修改方案
如果在网络部分有特殊需求,可以在SampleNet类中注册网络结构
# ===== 网络结构注册 =====
if tag_method == "emb":
hidden_layer = nn.LayerList([nn.Embedding(size=[size_dict[tag], EMB_SIZE]),
nn.Linear(input_dim=EMB_SIZE, output_dim=EMB_LINEAR_SIZE)])
out_layer_input_size += EMB_LINEAR_SIZE
elif tag_method == "xxx":
# 注册xxx网络结构,也可以多种预处理方案使用同一种网络结构,例如:elif tag_method in ["xxx", "yyy"]:
hidden_layer = nn.LayerList(
[nn.Linear(input_dim=1, output_dim=1, act="tanh") for _ in range(LINEAR_LAYERS_NUM)])
out_layer_input_size += 1
elif tag_method is None:
continue
else:
raise Exception(str(tag_method) + "为未注册的处理方案,请在SampleNet类中进行定义处理流程")
网络结构
通过分析数据集得知,数据集内有较多字段为离散值,并非连续值,若直接放入Linear层可能效果会很差,举例如下:
假设A字段值0 1 2分别代表老王、老李和老张,B字段值0 1 2分别表示0 1 2个苹果的三种价格
我们可以说0个苹果是0元,而2个苹果是2元,Linear层也可以推出1个苹果为1元的结论
但我们能否推出老王是0,老张是2,那么老李一定就是1吗?
显然不能,因为老李与老张和老王并没有直接关系,3也可能是老李,1024也可能是老李。
同理数据集中的设备名字段有“安卓“、”IOS“、”None”三种情况,也不适合当做连续值来处理。
当然我们可以尝试用Embedding操作来做出一组特征向量,输入的虽然是0 1 2这种的索引值,但其会映射出一个shape为N的特征,这个特征可以通过训练来尽可能代表对应人物的关系。
在基线中,我们对若干离散值字段使用了Embedding(Emb)操作来获取其特征向量,随后传入Linear层进行特征提取。当然该方案并不是最优解,选手可以自行判断哪些字段适合做Emb,或者使用比Emb更有效的方案来做处理。
对于连续值,我们则可以用一个Linear层轻松推理出1个苹果的价格,那么对于本次赛题,提升Linear层的size还是其层数由选手自行决定。
同样,网络部分的损失函数(激励函数)也可以由选手自行选择,默认隐藏层为tanh
最终我们将这些特征通concat方法链接在一起,通过softmax激活函数来完成多分类任务。当然选手也可以使用sigmoid激活函数来完成二分类任务,但并不是很推荐这样做。
做softmax时需要注意variable的shape,为了一次性解决该细节问题,基线中使用flatten来转化为2维形式(batch size,feature size),这样就可放心做softmax了。
默认提供的网络组件解析
nn.LayerList
会生成一个layer列表,这里我们以"norm"方法对应的组件为例:
nn.Linear
为创建一个Linear(线性层),其文档可以在飞桨官方网站中搜索得到,此处不提供解析。
... for _ in range(LINEAR_LAYERS_NUM)
表示循环多少次,1次代表循环一层。
该循环等同于:
tmp = []
for i in range(循环次数):
tmp.append(nn.Linear(...))
主要结构为
# ===== 网络结构注册 =====
if tag_method == "emb":
hidden_layer = nn.LayerList([nn.Embedding(size=[size_dict[tag], EMB_SIZE]),
nn.Linear(input_dim=EMB_SIZE, output_dim=EMB_LINEAR_SIZE)])
out_layer_input_size += EMB_LINEAR_SIZE
elif tag_method == "norm":
hidden_layer = nn.LayerList(
[nn.Linear(input_dim=1, output_dim=1, act="tanh") for _ in range(LINEAR_LAYERS_NUM)])
out_layer_input_size += 1
执行预测
为了简化推理流程,只需要选手将训练脚本的IS_INFER
打开,并且设置好CHECK_POINT_ID
(每轮训练都会保存一个“数字.pdparams”的参数文件,可以填写该数字作为ID)
运行完毕后会打印出结果文件的路径,选手可以在赛题的报名页面点击提交结果来上传该文件。
( 以 下 为 实 战 部 分 ) \color{red}{(以下为实战部分)} (以下为实战部分)
环境配置
目前飞桨(PaddlePaddle)正式版仍为1.8.4,以下代码均为2.0RC0测试版本,本地安装需要指定版本号进安装。
数据预处理 - 配置部分
import os
import pandas as pd
import numpy as np
from paddle.io import Dataset
from baseline_tools import *
import math
# None表示不使用,“emb”为Embedding预处理方案,选手可自由选择使用字段以及预处理方案
TAGS = {'android_id': None,
'apptype': "emb",
'carrier': "emb",
'dev_height': "emb",
'dev_ppi': "emb",
'dev_width': "emb",
'lan': "emb",
'media_id': "emb",
'ntt': "emb",
'os': None,
'osv': "emb",
'package': "emb",
'sid': None,
'timestamp': "norm",
'version': "emb",
'fea_hash': None,
'location': "emb",
'fea1_hash': "emb",
'cus_type': "emb"}
数据预处理 - 生成Embedding所需数据
TRAIN_PATH = "train.csv"
SAVE_PATH = "emb_dicts"
df = pd.read_csv(TRAIN_PATH, index_col=0)
pack = dict()
for tag, tag_method in TAGS.items():
if tag_method == "norm":
data = df.loc[:, tag]
print("{}_max的倒数:{}".format(tag,1/float(data.max())),"--------",float(data.max())/2)
print("{}_max:{}".format(tag,float(data.max())),"--------min:",float(data.min()))
#print("{}_mean:{}".format(tag,data.mean()))
elif tag_method == "emb":
data = df.loc[:, tag]
dict_size = make_dict_file(data, SAVE_PATH, dict_name=tag)
pack[tag] = dict_size + 1 # +1是为了增加字典中不存在的情况,提供一个默认值
with open(os.path.join(SAVE_PATH, "size.dict"), "w", encoding="utf-8") as f:
for k in pack:
print(k, int(2*math.log(pack[k])))
f.write(str(pack))
print("全部生成完毕")
apptype 字典生成完毕,共 89 个id
carrier 字典生成完毕,共 5 个id
dev_height 字典生成完毕,共 798 个id
dev_ppi 字典生成完毕,共 92 个id
dev_width 字典生成完毕,共 346 个id
lan 字典生成完毕,共 22 个id
media_id 字典生成完毕,共 284 个id
ntt 字典生成完毕,共 8 个id
osv 字典生成完毕,共 155 个id
package 字典生成完毕,共 1950 个id
timestamp_max的倒数:6.409861939473897e-13 -------- 780048002158.7462
timestamp_max:1560096004317.4924 --------min: 1559491201174.7812
version 字典生成完毕,共 22 个id
location 字典生成完毕,共 332 个id
fea1_hash 字典生成完毕,共 4959 个id
cus_type 字典生成完毕,共 58 个id
apptype 8
carrier 3
dev_height 13
dev_ppi 9
dev_width 11
lan 6
media_id 11
ntt 4
osv 10
package 15
version 6
location 11
fea1_hash 17
cus_type 8
全部生成完毕
# 归一化权重设置
NORM_WEIGHT = {'timestamp': 6.40986e-13,
'dev_height': 0.00011081560283687943}
数据预处理 - 定义数据读取器以及预处理流程
DATA_RATIO = 0.95 # 训练集和验证集比例
class Reader(Dataset):
def __init__(self,
is_infer: bool = False,
is_val: bool = False,
use_mini_train: bool = False,
emb_dict_path="./emb_dicts"):
"""
数据读取类
:param is_infer: 是否为预测Reader
:param is_val: 是否为验证Reader
:param use_mini_train:使用Mini数据集
:param emb_dict_path: emb字典路径
"""
super().__init__()
# 选择文件名
train_name = "mini_train" if use_mini_train else "train"
file_name = "test" if is_infer else train_name
# 根据文件名读取对应csv文件
df = pd.read_csv(file_name + ".csv")
# 划分数据集
if is_infer:
self.df = df.reset_index()
else:
start_index = 0 if not is_val else int(len(df) * DATA_RATIO)
end_index = int(len(df) * DATA_RATIO) if not is_val else len(df)
self.df = df.loc[start_index:end_index].reset_index()
# 数据预处理
self.cols = [tag for tag, tag_method in TAGS.items() if tag_method is not None]
self.methods = dict()
for col in self.cols:
# ===== 预处理方法注册 =====
if TAGS[col] == "emb":
self.methods[col] = Data2IdEmb(dict_path=emb_dict_path, dict_name=col).get_method()
elif TAGS[col] == "norm":
self.methods[col] = Data2IdNorm(norm_weight=NORM_WEIGHT[col]).get_method()
else:
raise Exception(str(TAGS) + "是未知的预处理方案,请选手在此位置使用elif注册")
# 设置FLAG负责控制__getitem__的pack是否包含label
self.add_label = not is_infer
# 设置FLAG负责控制数据集划分情况
self.is_val = is_val
def __getitem__(self, index):
"""
获取sample
:param index: sample_id
:return: sample
"""
# 因为本次数据集的字段非常多,这里就使用一个列表来"收纳"这些数据
pack = []
# 遍历指定数量的字段
for col in self.cols:
sample = self.df.loc[index, col]
sample = self.methods[col](sample)
pack.append(sample)
# 如果不是预测,则添加标签数据
if self.add_label:
tag_data = self.df.loc[index, "label"]
tag_data = np.array(tag_data).astype("int64")
pack.append(tag_data)
return pack
else:
return pack
def __len__(self):
return len(self.df)
def get_size_dict(dict_path="./emb_dicts/size.dict"):
"""
获取特征不同字段数量
:param dict_path: 由run_make_emb_dict.py生成的size.dict
:return: 推荐大小字典{key: num}
"""
with open(dict_path, "r", encoding="utf-8") as f:
try:
size_dict = eval(f.read())
except Exception as e:
print("size_dict打开失败,请检查", dict_path, "文件是否正常,报错信息如下:\n", e)
return size_dict
def get_emb_size_dict(dict_path="./emb_dicts/size.dict"):
"""
获取Embedding size
:param dict_path: 由run_make_emb_dict.py生成的size.dict
:return: 推荐大小字典{key: num}
"""
with open(dict_path, "r", encoding="utf-8") as f:
try:
size_dict = eval(f.read())
for k in size_dict:
size_dict[k] = int(8*math.log(size_dict[k]))
except Exception as e:
print("size_dict打开失败,请检查", dict_path, "文件是否正常,报错信息如下:\n", e)
return size_dict
数据预处理 - 检查数据是否可以正常读取(可选)
默认只检查训练,infer和test可以在val_reader = Reader(此处设置)
中参考刚刚定义的Reader
来配置
# 用于独立测试数据读取是否正常 推荐在本地IDE中下断点进行测试
print("检查数据ing...")
val_reader = Reader()
print(len(val_reader))
for data_id, data in enumerate(val_reader):
for i in range(len(data)):
if data_id == 0:
print("第", i, "个字段 值为:", data[i])
else:
break
if data_id % 1000 == 0:
print("第", data_id, "条数据可正常读取 正在检查中", end="\r")
if data_id == len(val_reader) - 1:
print("数据检查完毕")
break
检查数据ing...
500000
第 0 个字段 值为: [1]
第 1 个字段 值为: [1]
第 2 个字段 值为: [0.]
第 3 个字段 值为: [1]
第 4 个字段 值为: [1]
第 5 个字段 值为: [1]
第 6 个字段 值为: [1]
第 7 个字段 值为: [1]
第 8 个字段 值为: [1]
第 9 个字段 值为: [1]
第 10 个字段 值为: [0.9998694]
第 11 个字段 值为: [1]
第 12 个字段 值为: [1]
第 13 个字段 值为: [1]
第 14 个字段 值为: [1]
第 15 个字段 值为: 1
数据检查完毕00 条数据可正常读取 正在检查中
训练&推理配置
import os
import numpy as np
import pandas as pd
import paddle
import paddle.nn as nn
import paddle.tensor as tensor
from paddle.static import InputSpec
from paddle.metric import Accuracy
# 组网
class SampleNet(paddle.nn.Layer): # wide concat embedding 过fc
def __init__(self, tag_dict: dict, size_dict: dict, emb_size_dict: dict):
# 继承Model
super().__init__()
# 新建一个隐藏层列表,用于存储各字段隐藏层对象
self.hidden_layers_list = []
# 定义一个用于记录输出层的输入大小变量,经过一个emb的网络结构就增加该结构的output_dim,以此类推
out_layer_input_size = 0
# 遍历每个字段以及其处理方式
for tag, tag_method in tag_dict.items():
# ===== 网络结构方法注册 =====
# Embedding方法注册
if tag_method == "emb":
hidden_layer = nn.LayerList([nn.Embedding(num_embeddings=size_dict[tag], embedding_dim=128)])
out_layer_input_size += 128 # emb_size_dict[tag]
# 归一化方法注册
elif tag_method == "norm":
hidden_layer = nn.LayerList([nn.Linear(in_features=1, out_features=1) for _ in range(1)])
out_layer_input_size += 1
# 跳过该字段
else: continue
self.hidden_layers_list.append(hidden_layer)
# 定义输出层,因为是二分类任务,激活函数以及损失方案可以由选手自己发挥,此处为sigmoid激活函数
# Tips: 若使用sigmoid激活函数,需要修改output_dim和损失函数,推荐理解原理后再尝试修改
self.redu = nn.Linear(in_features=out_layer_input_size, out_features=out_layer_input_size//3)
self.exp = nn.Linear(in_features=out_layer_input_size//3, out_features=out_layer_input_size)
self.relu = nn.ReLU()
self.fc1 = nn.Linear(in_features=out_layer_input_size, out_features=256)
self.fc2 = nn.Linear(in_features=256, out_features=64) #
self.fc3 = nn.Linear(in_features=64, out_features=2)
self.fc4 = nn.Linear(32, 2)
self.act1 = nn.LeakyReLU()
self.act2 = nn.LeakyReLU()
self.drop = nn.Dropout(p=0.2)#正则化方法
# 前向推理部分 `*input_data`的`*`表示传入任一数量的变量
def forward(self, *input_data):
layer_list = [] # 用于存储各字段特征结果
for sample_data, hidden_layers in zip(input_data, self.hidden_layers_list):
tmp = sample_data
for hidden_layer in hidden_layers:
tmp = hidden_layer(tmp)
layer_list.append(tensor.flatten(tmp, start_axis=1)) # flatten是因为原始shape为[batch size, 1 , *n], 需要变换为[bs, n]
# 对所有字段的特征合并
layers = tensor.concat(layer_list, axis=1)
# 把特征放入用于输出层的网络
mask = self.redu(layers)
mask = self.exp(mask)
mask = self.relu(mask)
layers = mask * layers
result = self.fc1(layers)
result = self.act1(result)
result = self.fc2(result)
result = self.act2(result)
result = self.fc3(result)
result = self.drop(result)
#result = self.fc4(result)
result = paddle.nn.functional.softmax(result)
# 返回分类结果
return result
训练+推理
# 模型保存与加载文件夹
SAVE_DIR = "./output/"
# 推理部分
IS_INFER = False # 是否为推理模式
TEST_BATCH_SIZE = 32 # 若因内存/显存发生报错,请优先调整为1
RESULT_FILE = "./result.csv" # 推理文件保存位置
# 部分训练超参数
EPOCHS = 20 # 训练多少个循环
TRAIN_BATCH_SIZE = 2000 # batch 大小
# 配置训练环境
USE_MINI_DATA = False # 默认使用小数据集,此方法可加快模型产出速度,但可能会影响准确率
USE_GPU = False # 线性任务GPU可能提升不明显甚至掉速
paddle.disable_static(place=paddle.CUDAPlace(0) if USE_GPU else paddle.CPUPlace())
# 定义网络输入
inputs = []
for tag_name, tag_m in TAGS.items():
d_type = "float32"
if tag_m == "emb":
d_type = "int64"
if tag_m is None:
continue
inputs.append(InputSpec(shape=[-1, 1], dtype=d_type, name=tag_name))
# 定义Label
labels = [InputSpec([-1, 1], 'int64', name='label')]
# 实例化SampleNet以及Reader
model = paddle.Model(SampleNet(TAGS, get_size_dict(), get_emb_size_dict()), inputs=inputs, labels=labels)
# 推理部分
if IS_INFER:
pass
#直接训练完推理结果
else:
# 定义学习率,并加载优化器参数到模型中
#total_steps = (int(450000) + 1)
#lr = paddle.fluid.dygraph.PolynomialDecay(0.01, total_steps, 0.001)
# 获取训练集和测试集数据读取器
#lr = paddle.optimizer.lr.PolynomialDecay(learning_rate=0.0008, decay_steps=total_steps*3, end_lr = 0.00008),用了这个发现效果更差,干脆不用
#model.load(os.path.join(SAVE_DIR, "1"))
#lr = paddle.optimizer.lr_scheduler.PiecewiseLR(boundaries=[1, 2], values=[0.001, 0.0001, 0.00001], verbose=True)
train_reader = Reader(use_mini_train=USE_MINI_DATA)
val_reader = Reader(use_mini_train=USE_MINI_DATA, is_val=True)
# 定义优化器
optimizer = paddle.optimizer.Adam(learning_rate=0.0007, parameters=model.parameters())#直接将学习率设置为固定0.0007
# 模型训练配置
model.prepare(optimizer, paddle.nn.loss.CrossEntropyLoss(), Accuracy())
# 开始训练
model.fit(train_data=train_reader, # 训练集数据
eval_data=val_reader, # 交叉验证集数据
batch_size=TRAIN_BATCH_SIZE, # Batch size大小
epochs=EPOCHS, # 训练轮数
log_freq=1000, # 日志打印间隔
save_dir=SAVE_DIR) # checkpoint保存路径
# 获取推理Reader并读取参数进行推理
infer_reader = Reader(is_infer=True)
#model.load(os.path.join(SAVE_DIR, CHECK_POINT_ID))
model.load(os.path.join(SAVE_DIR, "3"))
# 开始推理
model.prepare()
infer_output = model.predict(infer_reader, TEST_BATCH_SIZE)
# 获取原始表中的字段并添加推理结果
result_df = infer_reader.df.loc[:, "sid"]
pack = []
for batch_out in infer_output[0]:
for sample in batch_out:
pack.append(np.argmax(sample))
# 保存csv文件
result_df = pd.DataFrame({"sid": np.array(result_df, dtype="int64"), "label": pack})
result_df.to_csv(RESULT_FILE, index=False)
print("结果文件保存至:", RESULT_FILE)
The loss value printed in the log is the current step, and the metric is the average value of previous step.
Epoch 1/20
step 238/238 - loss: 0.4482 - acc: 0.8454 - 630ms/step
save checkpoint at /home/aistudio/output/0
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4379 - acc: 0.8741 - 389ms/step
Eval samples: 25000
Epoch 2/20
step 238/238 - loss: 0.4316 - acc: 0.8682 - 628ms/step
save checkpoint at /home/aistudio/output/1
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4327 - acc: 0.8829 - 398ms/step
Eval samples: 25000
Epoch 3/20
step 238/238 - loss: 0.4266 - acc: 0.8716 - 625ms/step
save checkpoint at /home/aistudio/output/2
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4309 - acc: 0.8837 - 395ms/step
Eval samples: 25000
Epoch 4/20
step 238/238 - loss: 0.4230 - acc: 0.8734 - 631ms/step
save checkpoint at /home/aistudio/output/3
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4298 - acc: 0.8851 - 393ms/step
Eval samples: 25000
Epoch 5/20
step 238/238 - loss: 0.4219 - acc: 0.8751 - 631ms/step
save checkpoint at /home/aistudio/output/4
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4287 - acc: 0.8860 - 484ms/step
Eval samples: 25000
Epoch 6/20
step 238/238 - loss: 0.4499 - acc: 0.8761 - 628ms/step
save checkpoint at /home/aistudio/output/5
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4293 - acc: 0.8859 - 433ms/step
Eval samples: 25000
Epoch 7/20
step 238/238 - loss: 0.4161 - acc: 0.8774 - 632ms/step
save checkpoint at /home/aistudio/output/6
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4289 - acc: 0.8865 - 448ms/step
Eval samples: 25000
Epoch 8/20
step 238/238 - loss: 0.4341 - acc: 0.8784 - 629ms/step
save checkpoint at /home/aistudio/output/7
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4307 - acc: 0.8854 - 464ms/step
Eval samples: 25000
Epoch 9/20
step 238/238 - loss: 0.4376 - acc: 0.8795 - 635ms/step
save checkpoint at /home/aistudio/output/8
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4293 - acc: 0.8871 - 387ms/step
Eval samples: 25000
Epoch 10/20
step 238/238 - loss: 0.4378 - acc: 0.8808 - 633ms/step
save checkpoint at /home/aistudio/output/9
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4322 - acc: 0.8870 - 395ms/step
Eval samples: 25000
Epoch 11/20
step 238/238 - loss: 0.4221 - acc: 0.8826 - 632ms/step
save checkpoint at /home/aistudio/output/10
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4292 - acc: 0.8868 - 397ms/step
Eval samples: 25000
Epoch 12/20
step 238/238 - loss: 0.4315 - acc: 0.8837 - 632ms/step
save checkpoint at /home/aistudio/output/11
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4341 - acc: 0.8856 - 394ms/step
Eval samples: 25000
Epoch 13/20
step 238/238 - loss: 0.4191 - acc: 0.8848 - 634ms/step
save checkpoint at /home/aistudio/output/12
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4327 - acc: 0.8864 - 392ms/step
Eval samples: 25000
Epoch 14/20
step 238/238 - loss: 0.4208 - acc: 0.8858 - 633ms/step
save checkpoint at /home/aistudio/output/13
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4317 - acc: 0.8861 - 420ms/step
Eval samples: 25000
Epoch 15/20
step 238/238 - loss: 0.3924 - acc: 0.8880 - 630ms/step
save checkpoint at /home/aistudio/output/14
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4312 - acc: 0.8859 - 397ms/step
Eval samples: 25000
Epoch 16/20
step 238/238 - loss: 0.4296 - acc: 0.8887 - 633ms/step
save checkpoint at /home/aistudio/output/15
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 13/13 - loss: 0.4333 - acc: 0.8850 - 406ms/step
Eval samples: 25000
Epoch 17/20
step 238/238 - loss: 0.4118 - acc: 0.8905 - 641ms/step
save checkpoint at /home/aistudio/output/16
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
/tmp/ipykernel_100/1071974817.py in <module>
59 epochs=EPOCHS, # 训练轮数
60 log_freq=1000, # 日志打印间隔
---> 61 save_dir=SAVE_DIR) # checkpoint保存路径
62
63 # 获取推理Reader并读取参数进行推理
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/hapi/model.py in fit(self, train_data, eval_data, batch_size, epochs, eval_freq, log_freq, save_dir, save_freq, verbose, drop_last, shuffle, num_workers, callbacks)
1504 })
1505
-> 1506 eval_logs = self._run_one_epoch(eval_loader, cbks, 'eval')
1507
1508 cbks.on_end('eval', eval_logs)
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/hapi/model.py in _run_one_epoch(self, data_loader, callbacks, mode, logs)
1800 if mode != 'predict':
1801 outs = getattr(self, mode + '_batch')(data[:len(self._inputs)],
-> 1802 data[len(self._inputs):])
1803 if self._metrics and self._loss:
1804 metrics = [[l[0] for l in outs[0]]]
<decorator-gen-346> in eval_batch(self, inputs, labels)
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/base.py in _decorate_function(func, *args, **kwargs)
313 def _decorate_function(func, *args, **kwargs):
314 with self:
--> 315 return func(*args, **kwargs)
316
317 @decorator.decorator
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/hapi/model.py in eval_batch(self, inputs, labels)
991 print(loss)
992 """
--> 993 loss = self._adapter.eval_batch(inputs, labels)
994 if fluid.in_dygraph_mode() and self._input_info is None:
995 self._update_inputs()
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/hapi/model.py in eval_batch(self, inputs, labels)
681 labels = [to_variable(l) for l in to_list(labels)]
682
--> 683 outputs = self.model.network.forward(* [to_variable(x) for x in inputs])
684 if self.model._loss:
685 losses = self.model._loss(*(to_list(outputs) + labels))
/tmp/ipykernel_100/2770151626.py in forward(self, *input_data)
53 for hidden_layer in hidden_layers:
54 tmp = hidden_layer(tmp)
---> 55 layer_list.append(tensor.flatten(tmp, start_axis=1)) # flatten是因为原始shape为[batch size, 1 , *n], 需要变换为[bs, n]
56 # 对所有字段的特征合并
57 layers = tensor.concat(layer_list, axis=1)
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/tensor/manipulation.py in flatten(x, start_axis, stop_axis, name)
271 if in_dygraph_mode():
272 dy_out, _ = core.ops.flatten_contiguous_range(
--> 273 x, 'start_axis', start_axis, 'stop_axis', stop_axis)
274 return dy_out
275
KeyboardInterrupt:
重选checkpoint推理
# 获取推理Reader并读取参数进行推理
infer_reader = Reader(is_infer=True)
#model.load(os.path.join(SAVE_DIR, CHECK_POINT_ID))
model.load(os.path.join(SAVE_DIR, "6"))
# 开始推理
model.prepare()
infer_output = model.predict(infer_reader, TEST_BATCH_SIZE)
# 获取原始表中的字段并添加推理结果
result_df = infer_reader.df.loc[:, "sid"]
pack = []
for batch_out in infer_output[0]:
for sample in batch_out:
pack.append(np.argmax(sample))
# 保存csv文件
result_df = pd.DataFrame({"sid": np.array(result_df, dtype="int64"), "label": pack})
result_df.to_csv(RESULT_FILE, index=False)
print("结果文件保存至:", RESULT_FILE)
结果文件保存至: ./result.csv
执行训练
# 定义Label
labels = [InputSpec([-1, 1], 'int64', name='label')]
# 实例化SampleNet
model = paddle.Model(SampleNet(TAGS, get_size_dict()), inputs=inputs, labels=labels)
# 获取训练集和测试集数据读取器
train_reader = Reader(use_mini_train=USE_MINI_DATA)
val_reader = Reader(use_mini_train=USE_MINI_DATA, is_val=True)
# 定义优化器
optimizer = paddle.optimizer.SGD(learning_rate=LEARNING_RATE, parameters=model.parameters())
# 模型训练配置
model.prepare(optimizer, paddle.nn.loss.CrossEntropyLoss(), Accuracy())
# 开始训练
model.fit(train_data=train_reader, # 训练集数据
eval_data=val_reader, # 交叉验证集数据
batch_size=TRAIN_BATCH_SIZE, # Batch size大小
epochs=EPOCHS, # 训练轮数
log_freq=1000, # 日志打印间隔
save_dir=SAVE_DIR) # checkpoint保存路径
The loss value printed in the log is the current step, and the metric is the average value of previous step.
Epoch 1/6
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py:89: DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
if isinstance(slot[0], (np.ndarray, np.bool, numbers.Number)):
step 1000/14063 - loss: 0.6668 - acc: 0.6605 - 14ms/step
step 2000/14063 - loss: 0.5938 - acc: 0.6700 - 14ms/step
step 3000/14063 - loss: 0.6358 - acc: 0.6734 - 13ms/step
step 4000/14063 - loss: 0.6555 - acc: 0.6752 - 13ms/step
step 5000/14063 - loss: 0.6648 - acc: 0.6772 - 13ms/step
step 6000/14063 - loss: 0.5974 - acc: 0.6789 - 13ms/step
step 7000/14063 - loss: 0.6367 - acc: 0.6802 - 13ms/step
step 8000/14063 - loss: 0.5830 - acc: 0.6814 - 14ms/step
step 9000/14063 - loss: 0.5893 - acc: 0.6834 - 13ms/step
step 10000/14063 - loss: 0.6006 - acc: 0.6849 - 13ms/step
step 11000/14063 - loss: 0.6458 - acc: 0.6868 - 13ms/step
step 12000/14063 - loss: 0.6721 - acc: 0.6888 - 13ms/step
step 13000/14063 - loss: 0.5752 - acc: 0.6903 - 14ms/step
step 14000/14063 - loss: 0.5395 - acc: 0.6917 - 13ms/step
step 14063/14063 - loss: 0.5060 - acc: 0.6918 - 13ms/step
save checkpoint at /home/aistudio/output/0
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 1000/1563 - loss: 0.5678 - acc: 0.7115 - 10ms/step
step 1563/1563 - loss: 0.5238 - acc: 0.7093 - 10ms/step
Eval samples: 50000
Epoch 2/6
step 1000/14063 - loss: 0.5799 - acc: 0.7140 - 13ms/step
step 2000/14063 - loss: 0.6258 - acc: 0.7150 - 14ms/step
step 3000/14063 - loss: 0.6061 - acc: 0.7169 - 14ms/step
step 4000/14063 - loss: 0.6425 - acc: 0.7194 - 14ms/step
step 5000/14063 - loss: 0.5608 - acc: 0.7215 - 14ms/step
step 6000/14063 - loss: 0.5770 - acc: 0.7246 - 14ms/step
step 7000/14063 - loss: 0.5426 - acc: 0.7268 - 14ms/step
step 8000/14063 - loss: 0.6176 - acc: 0.7289 - 14ms/step
step 9000/14063 - loss: 0.5292 - acc: 0.7321 - 14ms/step
step 10000/14063 - loss: 0.5571 - acc: 0.7342 - 14ms/step
step 11000/14063 - loss: 0.5725 - acc: 0.7357 - 14ms/step
step 12000/14063 - loss: 0.5762 - acc: 0.7370 - 14ms/step
step 13000/14063 - loss: 0.5793 - acc: 0.7382 - 14ms/step
step 14000/14063 - loss: 0.5393 - acc: 0.7395 - 14ms/step
step 14063/14063 - loss: 0.5304 - acc: 0.7396 - 14ms/step
save checkpoint at /home/aistudio/output/1
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 1000/1563 - loss: 0.5391 - acc: 0.7512 - 10ms/step
step 1563/1563 - loss: 0.5238 - acc: 0.7513 - 10ms/step
Eval samples: 50000
Epoch 3/6
step 1000/14063 - loss: 0.5792 - acc: 0.7525 - 13ms/step
step 2000/14063 - loss: 0.6184 - acc: 0.7534 - 13ms/step
step 3000/14063 - loss: 0.5904 - acc: 0.7542 - 13ms/step
step 4000/14063 - loss: 0.6444 - acc: 0.7540 - 14ms/step
step 5000/14063 - loss: 0.5381 - acc: 0.7545 - 14ms/step
step 6000/14063 - loss: 0.5701 - acc: 0.7552 - 14ms/step
step 7000/14063 - loss: 0.5370 - acc: 0.7552 - 14ms/step
step 8000/14063 - loss: 0.5717 - acc: 0.7551 - 14ms/step
step 9000/14063 - loss: 0.5048 - acc: 0.7555 - 14ms/step
step 10000/14063 - loss: 0.6200 - acc: 0.7556 - 14ms/step
step 11000/14063 - loss: 0.5194 - acc: 0.7558 - 14ms/step
step 12000/14063 - loss: 0.4467 - acc: 0.7564 - 14ms/step
step 13000/14063 - loss: 0.5737 - acc: 0.7565 - 14ms/step
step 14000/14063 - loss: 0.5789 - acc: 0.7568 - 14ms/step
step 14063/14063 - loss: 0.5508 - acc: 0.7568 - 14ms/step
save checkpoint at /home/aistudio/output/2
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 1000/1563 - loss: 0.5289 - acc: 0.7574 - 11ms/step
step 1563/1563 - loss: 0.5255 - acc: 0.7579 - 11ms/step
Eval samples: 50000
Epoch 4/6
step 1000/14063 - loss: 0.5483 - acc: 0.7640 - 14ms/step
step 2000/14063 - loss: 0.5663 - acc: 0.7621 - 14ms/step
step 3000/14063 - loss: 0.5752 - acc: 0.7612 - 14ms/step
step 4000/14063 - loss: 0.5004 - acc: 0.7619 - 14ms/step
step 5000/14063 - loss: 0.5310 - acc: 0.7617 - 14ms/step
step 6000/14063 - loss: 0.5543 - acc: 0.7621 - 14ms/step
step 7000/14063 - loss: 0.5577 - acc: 0.7620 - 14ms/step
step 8000/14063 - loss: 0.4969 - acc: 0.7617 - 14ms/step
step 9000/14063 - loss: 0.5192 - acc: 0.7619 - 14ms/step
step 10000/14063 - loss: 0.5294 - acc: 0.7620 - 14ms/step
step 11000/14063 - loss: 0.5689 - acc: 0.7619 - 14ms/step
step 12000/14063 - loss: 0.5373 - acc: 0.7619 - 14ms/step
step 13000/14063 - loss: 0.4529 - acc: 0.7619 - 14ms/step
step 14000/14063 - loss: 0.4482 - acc: 0.7624 - 14ms/step
step 14063/14063 - loss: 0.5622 - acc: 0.7623 - 14ms/step
save checkpoint at /home/aistudio/output/3
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 1000/1563 - loss: 0.5206 - acc: 0.7621 - 12ms/step
step 1563/1563 - loss: 0.5279 - acc: 0.7624 - 12ms/step
Eval samples: 50000
Epoch 5/6
step 1000/14063 - loss: 0.6292 - acc: 0.7716 - 14ms/step
step 2000/14063 - loss: 0.5972 - acc: 0.7678 - 14ms/step
step 3000/14063 - loss: 0.5660 - acc: 0.7675 - 14ms/step
step 4000/14063 - loss: 0.5588 - acc: 0.7668 - 14ms/step
step 5000/14063 - loss: 0.4958 - acc: 0.7666 - 14ms/step
step 6000/14063 - loss: 0.5313 - acc: 0.7659 - 14ms/step
step 7000/14063 - loss: 0.5379 - acc: 0.7661 - 14ms/step
step 8000/14063 - loss: 0.5828 - acc: 0.7662 - 14ms/step
step 9000/14063 - loss: 0.6108 - acc: 0.7662 - 14ms/step
step 10000/14063 - loss: 0.5233 - acc: 0.7657 - 14ms/step
step 11000/14063 - loss: 0.4769 - acc: 0.7657 - 14ms/step
step 12000/14063 - loss: 0.5602 - acc: 0.7656 - 14ms/step
step 13000/14063 - loss: 0.6076 - acc: 0.7655 - 14ms/step
step 14000/14063 - loss: 0.5018 - acc: 0.7656 - 14ms/step
step 14063/14063 - loss: 0.5771 - acc: 0.7656 - 14ms/step
save checkpoint at /home/aistudio/output/4
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 1000/1563 - loss: 0.5143 - acc: 0.7648 - 11ms/step
step 1563/1563 - loss: 0.5306 - acc: 0.7652 - 11ms/step
Eval samples: 50000
Epoch 6/6
step 1000/14063 - loss: 0.5334 - acc: 0.7655 - 15ms/step
step 2000/14063 - loss: 0.5224 - acc: 0.7676 - 14ms/step
step 3000/14063 - loss: 0.5595 - acc: 0.7669 - 14ms/step
step 4000/14063 - loss: 0.4829 - acc: 0.7672 - 14ms/step
step 5000/14063 - loss: 0.5417 - acc: 0.7676 - 14ms/step
step 6000/14063 - loss: 0.5234 - acc: 0.7683 - 14ms/step
step 7000/14063 - loss: 0.5223 - acc: 0.7678 - 14ms/step
step 8000/14063 - loss: 0.5447 - acc: 0.7676 - 14ms/step
step 9000/14063 - loss: 0.5332 - acc: 0.7672 - 14ms/step
step 10000/14063 - loss: 0.4647 - acc: 0.7675 - 14ms/step
step 11000/14063 - loss: 0.4702 - acc: 0.7676 - 14ms/step
step 12000/14063 - loss: 0.5789 - acc: 0.7672 - 14ms/step
step 13000/14063 - loss: 0.4640 - acc: 0.7672 - 14ms/step
step 14000/14063 - loss: 0.5345 - acc: 0.7672 - 14ms/step
step 14063/14063 - loss: 0.6922 - acc: 0.7671 - 14ms/step
save checkpoint at /home/aistudio/output/5
Eval begin...
The loss value printed in the log is the current batch, and the metric is the average value of previous step.
step 1000/1563 - loss: 0.5118 - acc: 0.7654 - 11ms/step
step 1563/1563 - loss: 0.5315 - acc: 0.7657 - 11ms/step
Eval samples: 50000
save checkpoint at /home/aistudio/output/final
执行推理
# 推理部分
CHECK_POINT_ID = "final" # 如没有训练完毕,可以挑选SAVE_DIR路径的下的中的checkpoint文件名(不包含拓展名哦),例如"1"
TEST_BATCH_SIZE = 32 # 若因内存/显存发生报错,请优先调整为1
RESULT_FILE = "./result1.csv" # 推理文件保存位置
# 实例化SampleNet
model = paddle.Model(SampleNet(TAGS, get_size_dict()), inputs=inputs)
# 获取推理Reader并读取参数进行推理
infer_reader = Reader(is_infer=True)
model.load(os.path.join(SAVE_DIR, CHECK_POINT_ID))
# 开始推理
model.prepare()
infer_output = model.predict(infer_reader, TEST_BATCH_SIZE)
# 获取原始表中的字段并添加推理结果
result_df = infer_reader.df.loc[:, "sid"]
pack = []
for batch_out in infer_output[0]:
for sample in batch_out:
pack.append(np.argmax(sample))
# 保存csv文件
result_df = pd.DataFrame({"sid": np.array(result_df, dtype="int64"), "label": pack})
result_df.to_csv(RESULT_FILE, index=False)
print("结果文件保存至:", RESULT_FILE)
Predict begin...
step 16/4688 [..............................] - ETA: 54s - 12ms/step 不在 package 字典内, 由默认值代替,可能影响效果
step 20/4688 [..............................] - ETA: 54s - 12ms/st2025 不在 package 字典内, 由默认值代替,可能影响效果
step 22/4688 [..............................] - ETA: 53s - 12ms/step
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dataloader/dataloader_iter.py:89: DeprecationWarning: `np.bool` is a deprecated alias for the builtin `bool`. To silence this warning, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.
Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
if isinstance(slot[0], (np.ndarray, np.bool, numbers.Number)):
2336.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 26/4688 [..............................] - ETA: 52s - 11ms/step1249 不在 package 字典内, 由默认值代替,可能影响效果
1804 不在 package 字典内, 由默认值代替,可能影响效果
step 34/4688 [..............................] - ETA: 57s - 12ms/stepstep 42/4688 [..............................] - ETA: 58s - 13ms/st916.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 54/4688 [..............................] - ETA: 1:00 - 13ms/ste1811 不在 package 字典内, 由默认值代替,可能影响效果
step 66/4688 [..............................] - ETA: 58s - 13ms/st1174.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 84/4688 [..............................] - ETA: 56s - 12ms/st150.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 96/4688 [..............................] - ETA: 56s - 12ms/st666.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 124/4688 [..............................] - ETA: 54s - 12ms/st1857 不在 package 字典内, 由默认值代替,可能影响效果
step 126/4688 [..............................] - ETA: 54s - 12ms/step1096.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
787 不在 package 字典内, 由默认值代替,可能影响效果
step 158/4688 [>.............................] - ETA: 52s - 12ms/st1186 不在 package 字典内, 由默认值代替,可能影响效果
step 220/4688 [>.............................] - ETA: 49s - 11ms/st921.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 222/4688 [>.............................] - ETA: 49s - 11ms/step611.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 238/4688 [>.............................] - ETA: 49s - 11ms/st1284.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 266/4688 [>.............................] - ETA: 48s - 11ms/st743 不在 package 字典内, 由默认值代替,可能影响效果
2014.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 288/4688 [>.............................] - ETA: 47s - 11ms/st299.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 292/4688 [>.............................] - ETA: 47s - 11ms/st2168.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 300/4688 [>.............................] - ETA: 47s - 11ms/st1891 不在 package 字典内, 由默认值代替,可能影响效果
step 340/4688 [=>............................] - ETA: 46s - 11ms/st1487.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
277.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 370/4688 [=>............................] - ETA: 45s - 11ms/st1943 不在 package 字典内, 由默认值代替,可能影响效果
step 372/4688 [=>............................] - ETA: 45s - 11ms/step1249 不在 package 字典内, 由默认值代替,可能影响效果
step 412/4688 [=>............................] - ETA: 44s - 10ms/st745.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 416/4688 [=>............................] - ETA: 44s - 10ms/st1934 不在 package 字典内, 由默认值代替,可能影响效果
step 422/4688 [=>............................] - ETA: 44s - 10ms/st1539.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 430/4688 [=>............................] - ETA: 44s - 10ms/st1555 不在 package 字典内, 由默认值代替,可能影响效果
356.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 434/4688 [=>............................] - ETA: 44s - 10ms/st2240 不在 package 字典内, 由默认值代替,可能影响效果
step 448/4688 [=>............................] - ETA: 44s - 10ms/st1405.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 478/4688 [==>...........................] - ETA: 43s - 10ms/st1799 不在 package 字典内, 由默认值代替,可能影响效果
step 486/4688 [==>...........................] - ETA: 43s - 10ms/st2699.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 506/4688 [==>...........................] - ETA: 43s - 10ms/st1312.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 512/4688 [==>...........................] - ETA: 43s - 10ms/st2436.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
1125.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 522/4688 [==>...........................] - ETA: 43s - 10ms/st2306 不在 package 字典内, 由默认值代替,可能影响效果
step 574/4688 [==>...........................] - ETA: 43s - 11ms/st1739 不在 package 字典内, 由默认值代替,可能影响效果
step 578/4688 [==>...........................] - ETA: 43s - 10ms/st1124 不在 media_id 字典内, 由默认值代替,可能影响效果
995 不在 package 字典内, 由默认值代替,可能影响效果
step 600/4688 [==>...........................] - ETA: 42s - 11ms/st577 不在 package 字典内, 由默认值代替,可能影响效果
step 606/4688 [==>...........................] - ETA: 43s - 11ms/st1486 不在 package 字典内, 由默认值代替,可能影响效果
step 616/4688 [==>...........................] - ETA: 43s - 11ms/st1892 不在 package 字典内, 由默认值代替,可能影响效果
step 624/4688 [==>...........................] - ETA: 43s - 11ms/st1303 不在 package 字典内, 由默认值代替,可能影响效果
step 650/4688 [===>..........................] - ETA: 42s - 11ms/st484 不在 package 字典内, 由默认值代替,可能影响效果
step 664/4688 [===>..........................] - ETA: 42s - 11ms/st2861.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 682/4688 [===>..........................] - ETA: 42s - 11ms/st1580 不在 package 字典内, 由默认值代替,可能影响效果
step 684/4688 [===>..........................] - ETA: 42s - 11ms/step917 不在 package 字典内, 由默认值代替,可能影响效果
669.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 696/4688 [===>..........................] - ETA: 42s - 11ms/st2672.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 702/4688 [===>..........................] - ETA: 41s - 11ms/st1828 不在 package 字典内, 由默认值代替,可能影响效果
step 706/4688 [===>..........................] - ETA: 41s - 11ms/st2095 不在 package 字典内, 由默认值代替,可能影响效果
step 710/4688 [===>..........................] - ETA: 41s - 11ms/st2091 不在 package 字典内, 由默认值代替,可能影响效果
step 712/4688 [===>..........................] - ETA: 41s - 11ms/step1913.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 718/4688 [===>..........................] - ETA: 41s - 10ms/st2229 不在 package 字典内, 由默认值代替,可能影响效果
1782.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 736/4688 [===>..........................] - ETA: 41s - 10ms/st1488 不在 package 字典内, 由默认值代替,可能影响效果
step 742/4688 [===>..........................] - ETA: 41s - 10ms/st1891 不在 package 字典内, 由默认值代替,可能影响效果
step 744/4688 [===>..........................] - ETA: 41s - 10ms/step1402.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 788/4688 [====>.........................] - ETA: 40s - 10ms/st2033.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 806/4688 [====>.........................] - ETA: 41s - 11ms/st674 不在 package 字典内, 由默认值代替,可能影响效果
step 808/4688 [====>.........................] - ETA: 41s - 11ms/step393.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 812/4688 [====>.........................] - ETA: 41s - 11ms/st533.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
853.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 822/4688 [====>.........................] - ETA: 40s - 11ms/st1839 不在 package 字典内, 由默认值代替,可能影响效果
step 854/4688 [====>.........................] - ETA: 40s - 11ms/st685 不在 package 字典内, 由默认值代替,可能影响效果
step 896/4688 [====>.........................] - ETA: 40s - 11ms/st1788 不在 package 字典内, 由默认值代替,可能影响效果
step 906/4688 [====>.........................] - ETA: 39s - 11ms/st1758 不在 package 字典内, 由默认值代替,可能影响效果
step 910/4688 [====>.........................] - ETA: 39s - 11ms/st1607 不在 package 字典内, 由默认值代替,可能影响效果
step 922/4688 [====>.........................] - ETA: 39s - 11ms/st1156 不在 package 字典内, 由默认值代替,可能影响效果
1048.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 968/4688 [=====>........................] - ETA: 39s - 11ms/st2217.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 970/4688 [=====>........................] - ETA: 39s - 11ms/step701 不在 package 字典内, 由默认值代替,可能影响效果
step 984/4688 [=====>........................] - ETA: 39s - 11ms/st4498.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 994/4688 [=====>........................] - ETA: 39s - 11ms/st1609 不在 package 字典内, 由默认值代替,可能影响效果
step 996/4688 [=====>........................] - ETA: 39s - 11ms/step2203.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1020/4688 [=====>........................] - ETA: 39s - 11ms/st1815 不在 package 字典内, 由默认值代替,可能影响效果
step 1046/4688 [=====>........................] - ETA: 38s - 11ms/st1992 不在 package 字典内, 由默认值代替,可能影响效果
step 1050/4688 [=====>........................] - ETA: 38s - 11ms/st810 不在 package 字典内, 由默认值代替,可能影响效果
step 1080/4688 [=====>........................] - ETA: 38s - 11ms/st2167.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1108/4688 [======>.......................] - ETA: 38s - 11ms/st1021 不在 package 字典内, 由默认值代替,可能影响效果
step 1118/4688 [======>.......................] - ETA: 38s - 11ms/st2123.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1124/4688 [======>.......................] - ETA: 38s - 11ms/st2259 不在 package 字典内, 由默认值代替,可能影响效果
step 1132/4688 [======>.......................] - ETA: 37s - 11ms/st2056 不在 package 字典内, 由默认值代替,可能影响效果
step 1148/4688 [======>.......................] - ETA: 37s - 11ms/st964.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1164/4688 [======>.......................] - ETA: 37s - 11ms/st1665.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1190/4688 [======>.......................] - ETA: 37s - 11ms/st1507 不在 package 字典内, 由默认值代替,可能影响效果
step 1202/4688 [======>.......................] - ETA: 37s - 11ms/st2070 不在 package 字典内, 由默认值代替,可能影响效果
step 1204/4688 [======>.......................] - ETA: 37s - 11ms/step2845.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1214/4688 [======>.......................] - ETA: 36s - 11ms/st1493 不在 package 字典内, 由默认值代替,可能影响效果
step 1220/4688 [======>.......................] - ETA: 36s - 11ms/st1252 不在 package 字典内, 由默认值代替,可能影响效果
step 1224/4688 [======>.......................] - ETA: 36s - 11ms/st1321 不在 package 字典内, 由默认值代替,可能影响效果
723 不在 package 字典内, 由默认值代替,可能影响效果
step 1262/4688 [=======>......................] - ETA: 36s - 11ms/st2106 不在 package 字典内, 由默认值代替,可能影响效果
step 1264/4688 [=======>......................] - ETA: 36s - 11ms/step898 不在 package 字典内, 由默认值代替,可能影响效果
step 1280/4688 [=======>......................] - ETA: 36s - 11ms/st790 不在 package 字典内, 由默认值代替,可能影响效果
step 1288/4688 [=======>......................] - ETA: 36s - 11ms/st236.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 1302/4688 [=======>......................] - ETA: 35s - 11ms/st1447 不在 package 字典内, 由默认值代替,可能影响效果
step 1322/4688 [=======>......................] - ETA: 35s - 11ms/st1432 不在 package 字典内, 由默认值代替,可能影响效果
step 1330/4688 [=======>......................] - ETA: 35s - 11ms/st2197.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1346/4688 [=======>......................] - ETA: 35s - 11ms/st1258 不在 package 字典内, 由默认值代替,可能影响效果
step 1352/4688 [=======>......................] - ETA: 35s - 11ms/st548 不在 package 字典内, 由默认值代替,可能影响效果
step 1358/4688 [=======>......................] - ETA: 35s - 11ms/st1504 不在 media_id 字典内, 由默认值代替,可能影响效果
step 1388/4688 [=======>......................] - ETA: 34s - 11ms/st1232 不在 package 字典内, 由默认值代替,可能影响效果
step 1392/4688 [=======>......................] - ETA: 34s - 11ms/st180.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1402/4688 [=======>......................] - ETA: 34s - 11ms/st1553 不在 package 字典内, 由默认值代替,可能影响效果
step 1432/4688 [========>.....................] - ETA: 34s - 11ms/st2229.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1454/4688 [========>.....................] - ETA: 34s - 11ms/st2233 不在 package 字典内, 由默认值代替,可能影响效果
step 1460/4688 [========>.....................] - ETA: 34s - 11ms/st1756 不在 package 字典内, 由默认值代替,可能影响效果
step 1498/4688 [========>.....................] - ETA: 33s - 11ms/st1440 不在 package 字典内, 由默认值代替,可能影响效果
step 1504/4688 [========>.....................] - ETA: 33s - 11ms/st1889 不在 package 字典内, 由默认值代替,可能影响效果
step 1540/4688 [========>.....................] - ETA: 33s - 11ms/st2043 不在 package 字典内, 由默认值代替,可能影响效果
step 1554/4688 [========>.....................] - ETA: 33s - 11ms/st1992.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1568/4688 [=========>....................] - ETA: 33s - 11ms/st2158 不在 package 字典内, 由默认值代替,可能影响效果
step 1576/4688 [=========>....................] - ETA: 32s - 11ms/st2002 不在 package 字典内, 由默认值代替,可能影响效果
step 1610/4688 [=========>....................] - ETA: 32s - 11ms/st292.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
1214.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1638/4688 [=========>....................] - ETA: 32s - 11ms/st1.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1646/4688 [=========>....................] - ETA: 32s - 11ms/st1474 不在 media_id 字典内, 由默认值代替,可能影响效果
step 1666/4688 [=========>....................] - ETA: 31s - 11ms/st675.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1668/4688 [=========>....................] - ETA: 31s - 11ms/step2141 不在 package 字典内, 由默认值代替,可能影响效果
step 1698/4688 [=========>....................] - ETA: 31s - 11ms/st2013.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1700/4688 [=========>....................] - ETA: 31s - 11ms/step9024.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
115.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
1700 不在 package 字典内, 由默认值代替,可能影响效果
step 1702/4688 [=========>....................] - ETA: 31s - 11ms/step2436.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
1125.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1724/4688 [==========>...................] - ETA: 31s - 11ms/st484 不在 package 字典内, 由默认值代替,可能影响效果
step 1728/4688 [==========>...................] - ETA: 31s - 11ms/st1715 不在 package 字典内, 由默认值代替,可能影响效果
587.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
331.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1736/4688 [==========>...................] - ETA: 31s - 11ms/st1479.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1744/4688 [==========>...................] - ETA: 31s - 11ms/st260.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
1252 不在 package 字典内, 由默认值代替,可能影响效果
step 1766/4688 [==========>...................] - ETA: 30s - 11ms/st2288 不在 package 字典内, 由默认值代替,可能影响效果
step 1776/4688 [==========>...................] - ETA: 30s - 11ms/st930.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1778/4688 [==========>...................] - ETA: 30s - 11ms/step8537.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1798/4688 [==========>...................] - ETA: 30s - 11ms/st1782.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1820/4688 [==========>...................] - ETA: 30s - 11ms/st1321.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1878/4688 [===========>..................] - ETA: 29s - 11ms/st2041.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1898/4688 [===========>..................] - ETA: 29s - 11ms/st1357 不在 package 字典内, 由默认值代替,可能影响效果
step 1922/4688 [===========>..................] - ETA: 29s - 11ms/st1239.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1950/4688 [===========>..................] - ETA: 28s - 11ms/st1369.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
1609 不在 package 字典内, 由默认值代替,可能影响效果
step 1958/4688 [===========>..................] - ETA: 28s - 11ms/st2260 不在 package 字典内, 由默认值代替,可能影响效果
step 1960/4688 [===========>..................] - ETA: 28s - 11ms/step1361 不在 package 字典内, 由默认值代替,可能影响效果
805.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 1962/4688 [===========>..................] - ETA: 28s - 11ms/step2287 不在 package 字典内, 由默认值代替,可能影响效果
step 1964/4688 [===========>..................] - ETA: 28s - 11ms/step723.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
1366.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 1982/4688 [===========>..................] - ETA: 28s - 11ms/st1803 不在 package 字典内, 由默认值代替,可能影响效果
step 1996/4688 [===========>..................] - ETA: 28s - 11ms/st1725.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2012/4688 [===========>..................] - ETA: 28s - 11ms/st8512.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2020/4688 [===========>..................] - ETA: 28s - 11ms/st2113 不在 package 字典内, 由默认值代替,可能影响效果
step 2028/4688 [===========>..................] - ETA: 28s - 11ms/st2189 不在 package 字典内, 由默认值代替,可能影响效果
step 2038/4688 [============>.................] - ETA: 27s - 11ms/st423.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 2058/4688 [============>.................] - ETA: 27s - 11ms/st347.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 2070/4688 [============>.................] - ETA: 27s - 11ms/st603.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2096/4688 [============>.................] - ETA: 27s - 11ms/st2144 不在 package 字典内, 由默认值代替,可能影响效果
step 2100/4688 [============>.................] - ETA: 27s - 11ms/st1671 不在 package 字典内, 由默认值代替,可能影响效果
step 2118/4688 [============>.................] - ETA: 27s - 11ms/st2311 不在 package 字典内, 由默认值代替,可能影响效果
step 2124/4688 [============>.................] - ETA: 26s - 11ms/st1596 不在 package 字典内, 由默认值代替,可能影响效果
step 2126/4688 [============>.................] - ETA: 26s - 11ms/step1658 不在 package 字典内, 由默认值代替,可能影响效果
step 2130/4688 [============>.................] - ETA: 26s - 11ms/st1725.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2140/4688 [============>.................] - ETA: 26s - 10ms/st769.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2142/4688 [============>.................] - ETA: 26s - 10ms/step724 不在 package 字典内, 由默认值代替,可能影响效果
1803 不在 package 字典内, 由默认值代替,可能影响效果
step 2190/4688 [=============>................] - ETA: 26s - 10ms/st687 不在 package 字典内, 由默认值代替,可能影响效果
step 2196/4688 [=============>................] - ETA: 26s - 10ms/st2672.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2218/4688 [=============>................] - ETA: 25s - 10ms/st1257 不在 package 字典内, 由默认值代替,可能影响效果
step 2226/4688 [=============>................] - ETA: 25s - 10ms/st2224.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2240/4688 [=============>................] - ETA: 25s - 10ms/st20 不在 version 字典内, 由默认值代替,可能影响效果
step 2294/4688 [=============>................] - ETA: 25s - 10ms/st1156 不在 package 字典内, 由默认值代替,可能影响效果
step 2312/4688 [=============>................] - ETA: 24s - 10ms/st1503.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 2334/4688 [=============>................] - ETA: 24s - 10ms/st2184.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 2372/4688 [==============>...............] - ETA: 24s - 10ms/st1814 不在 package 字典内, 由默认值代替,可能影响效果
step 2404/4688 [==============>...............] - ETA: 23s - 10ms/st714 不在 package 字典内, 由默认值代替,可能影响效果
step 2414/4688 [==============>...............] - ETA: 23s - 10ms/st1641 不在 package 字典内, 由默认值代替,可能影响效果
step 2432/4688 [==============>...............] - ETA: 23s - 10ms/st1435 不在 package 字典内, 由默认值代替,可能影响效果
step 2434/4688 [==============>...............] - ETA: 23s - 10ms/step6024.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2454/4688 [==============>...............] - ETA: 23s - 10ms/st2018 不在 package 字典内, 由默认值代替,可能影响效果
step 2458/4688 [==============>...............] - ETA: 23s - 10ms/st2182 不在 package 字典内, 由默认值代替,可能影响效果
step 2472/4688 [==============>...............] - ETA: 23s - 10ms/st2720.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2492/4688 [==============>...............] - ETA: 22s - 10ms/st60.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
20.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
50.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
1897 不在 package 字典内, 由默认值代替,可能影响效果
step 2530/4688 [===============>..............] - ETA: 22s - 10ms/st1916 不在 package 字典内, 由默认值代替,可能影响效果
step 2532/4688 [===============>..............] - ETA: 22s - 10ms/step2072 不在 package 字典内, 由默认值代替,可能影响效果
step 2536/4688 [===============>..............] - ETA: 22s - 10ms/st2033.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 2540/4688 [===============>..............] - ETA: 22s - 10ms/st978.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2568/4688 [===============>..............] - ETA: 22s - 10ms/st1326 不在 package 字典内, 由默认值代替,可能影响效果
step 2666/4688 [================>.............] - ETA: 21s - 10ms/st1724 不在 package 字典内, 由默认值代替,可能影响效果
step 2688/4688 [================>.............] - ETA: 20s - 10ms/st2720.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
2476.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 2694/4688 [================>.............] - ETA: 20s - 10ms/st2112 不在 package 字典内, 由默认值代替,可能影响效果
step 2708/4688 [================>.............] - ETA: 20s - 10ms/st1662 不在 package 字典内, 由默认值代替,可能影响效果
step 2744/4688 [================>.............] - ETA: 20s - 10ms/st714.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2750/4688 [================>.............] - ETA: 20s - 10ms/st1518 不在 package 字典内, 由默认值代替,可能影响效果
step 2754/4688 [================>.............] - ETA: 20s - 10ms/st322.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 2762/4688 [================>.............] - ETA: 20s - 10ms/st1172 不在 package 字典内, 由默认值代替,可能影响效果
step 2764/4688 [================>.............] - ETA: 19s - 10ms/step1876 不在 package 字典内, 由默认值代替,可能影响效果
step 2776/4688 [================>.............] - ETA: 19s - 10ms/st933 不在 package 字典内, 由默认值代替,可能影响效果
step 2812/4688 [================>.............] - ETA: 19s - 10ms/st1737 不在 package 字典内, 由默认值代替,可能影响效果
step 2818/4688 [=================>............] - ETA: 19s - 10ms/st1916 不在 package 字典内, 由默认值代替,可能影响效果
step 2820/4688 [=================>............] - ETA: 19s - 10ms/step1608 不在 package 字典内, 由默认值代替,可能影响效果
step 2862/4688 [=================>............] - ETA: 18s - 10ms/st5976.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2884/4688 [=================>............] - ETA: 18s - 10ms/st2187 不在 package 字典内, 由默认值代替,可能影响效果
step 2894/4688 [=================>............] - ETA: 18s - 10ms/st1860 不在 package 字典内, 由默认值代替,可能影响效果
step 2908/4688 [=================>............] - ETA: 18s - 10ms/st1943 不在 package 字典内, 由默认值代替,可能影响效果
step 2924/4688 [=================>............] - ETA: 18s - 10ms/st1490 不在 package 字典内, 由默认值代替,可能影响效果
step 2932/4688 [=================>............] - ETA: 18s - 10ms/st872 不在 package 字典内, 由默认值代替,可能影响效果
step 2950/4688 [=================>............] - ETA: 18s - 10ms/st657.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 2960/4688 [=================>............] - ETA: 17s - 10ms/st2012 不在 package 字典内, 由默认值代替,可能影响效果
step 3012/4688 [==================>...........] - ETA: 17s - 10ms/st917 不在 package 字典内, 由默认值代替,可能影响效果
step 3016/4688 [==================>...........] - ETA: 17s - 10ms/st1945 不在 package 字典内, 由默认值代替,可能影响效果
step 3024/4688 [==================>...........] - ETA: 17s - 10ms/st1607 不在 package 字典内, 由默认值代替,可能影响效果
step 3032/4688 [==================>...........] - ETA: 17s - 10ms/st666.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3034/4688 [==================>...........] - ETA: 17s - 10ms/step719 不在 package 字典内, 由默认值代替,可能影响效果
1782.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3078/4688 [==================>...........] - ETA: 16s - 10ms/st2110 不在 package 字典内, 由默认值代替,可能影响效果
step 3098/4688 [==================>...........] - ETA: 16s - 10ms/st929.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3144/4688 [===================>..........] - ETA: 15s - 10ms/st2037 不在 package 字典内, 由默认值代替,可能影响效果
step 3158/4688 [===================>..........] - ETA: 15s - 10ms/st2231 不在 package 字典内, 由默认值代替,可能影响效果
step 3206/4688 [===================>..........] - ETA: 15s - 10ms/st2151 不在 package 字典内, 由默认值代替,可能影响效果
step 3220/4688 [===================>..........] - ETA: 15s - 10ms/st492.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3228/4688 [===================>..........] - ETA: 15s - 10ms/st2086.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3232/4688 [===================>..........] - ETA: 15s - 10ms/st2326 不在 package 字典内, 由默认值代替,可能影响效果
2227 不在 package 字典内, 由默认值代替,可能影响效果
step 3246/4688 [===================>..........] - ETA: 14s - 10ms/st979 不在 media_id 字典内, 由默认值代替,可能影响效果
step 3252/4688 [===================>..........] - ETA: 14s - 10ms/st1382.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3272/4688 [===================>..........] - ETA: 14s - 10ms/st746.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3276/4688 [===================>..........] - ETA: 14s - 10ms/st5408.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 3286/4688 [====================>.........] - ETA: 14s - 10ms/st1984 不在 package 字典内, 由默认值代替,可能影响效果
step 3292/4688 [====================>.........] - ETA: 14s - 10ms/st751.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3404/4688 [====================>.........] - ETA: 13s - 10ms/st2319.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3410/4688 [====================>.........] - ETA: 13s - 10ms/st1099.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 3440/4688 [=====================>........] - ETA: 12s - 10ms/st470.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 3470/4688 [=====================>........] - ETA: 12s - 10ms/st1884 不在 package 字典内, 由默认值代替,可能影响效果
step 3474/4688 [=====================>........] - ETA: 12s - 10ms/st1319.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3478/4688 [=====================>........] - ETA: 12s - 10ms/st289 不在 package 字典内, 由默认值代替,可能影响效果
step 3482/4688 [=====================>........] - ETA: 12s - 10ms/st2164.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3496/4688 [=====================>........] - ETA: 12s - 10ms/st2268 不在 package 字典内, 由默认值代替,可能影响效果
step 3514/4688 [=====================>........] - ETA: 12s - 10ms/sten_US 不在 lan 字典内, 由默认值代替,可能影响效果
step 3520/4688 [=====================>........] - ETA: 12s - 10ms/st979 不在 media_id 字典内, 由默认值代替,可能影响效果
step 3522/4688 [=====================>........] - ETA: 12s - 10ms/step675.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3530/4688 [=====================>........] - ETA: 11s - 10ms/st1943 不在 package 字典内, 由默认值代替,可能影响效果
step 3538/4688 [=====================>........] - ETA: 11s - 10ms/st1321.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3570/4688 [=====================>........] - ETA: 11s - 10ms/st1479.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 3588/4688 [=====================>........] - ETA: 11s - 10ms/st2028 不在 package 字典内, 由默认值代替,可能影响效果
step 3604/4688 [======================>.......] - ETA: 11s - 10ms/st881 不在 package 字典内, 由默认值代替,可能影响效果
step 3654/4688 [======================>.......] - ETA: 10s - 10ms/st2150 不在 package 字典内, 由默认值代替,可能影响效果
step 3720/4688 [======================>.......] - ETA: 10s - 10ms/st1435 不在 package 字典内, 由默认值代替,可能影响效果
step 3754/4688 [=======================>......] - ETA: 9s - 10ms/st409.0 不在 dev_ppi 字典内, 由默认值代替,可能影响效果
step 3808/4688 [=======================>......] - ETA: 9s - 10ms/st608 不在 package 字典内, 由默认值代替,可能影响效果
step 3814/4688 [=======================>......] - ETA: 9s - 10ms/st1656 不在 package 字典内, 由默认值代替,可能影响效果
step 3818/4688 [=======================>......] - ETA: 9s - 10ms/ste1992.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
2183 不在 package 字典内, 由默认值代替,可能影响效果
step 3824/4688 [=======================>......] - ETA: 8s - 10ms/st1484 不在 media_id 字典内, 由默认值代替,可能影响效果
step 3842/4688 [=======================>......] - ETA: 8s - 10ms/st1316 不在 package 字典内, 由默认值代替,可能影响效果
step 3844/4688 [=======================>......] - ETA: 8s - 10ms/step1260 不在 package 字典内, 由默认值代替,可能影响效果
step 3862/4688 [=======================>......] - ETA: 8s - 10ms/st350.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 3876/4688 [=======================>......] - ETA: 8s - 10ms/st1649 不在 package 字典内, 由默认值代替,可能影响效果
step 3908/4688 [========================>.....] - ETA: 8s - 10ms/ste1539 不在 package 字典内, 由默认值代替,可能影响效果
step 3918/4688 [========================>.....] - ETA: 8s - 10ms/st1534 不在 media_id 字典内, 由默认值代替,可能影响效果
2293 不在 package 字典内, 由默认值代替,可能影响效果
step 3926/4688 [========================>.....] - ETA: 7s - 10ms/ste896.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
504.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 3954/4688 [========================>.....] - ETA: 7s - 10ms/ste2078 不在 package 字典内, 由默认值代替,可能影响效果
1440 不在 package 字典内, 由默认值代替,可能影响效果
step 3978/4688 [========================>.....] - ETA: 7s - 10ms/ste1318.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 3984/4688 [========================>.....] - ETA: 7s - 10ms/st2094 不在 package 字典内, 由默认值代替,可能影响效果
step 4022/4688 [========================>.....] - ETA: 6s - 10ms/st1214 不在 package 字典内, 由默认值代替,可能影响效果
step 4026/4688 [========================>.....] - ETA: 6s - 10ms/ste1432 不在 package 字典内, 由默认值代替,可能影响效果
step 4048/4688 [========================>.....] - ETA: 6s - 10ms/st732.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 4050/4688 [========================>.....] - ETA: 6s - 10ms/step657.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4068/4688 [=========================>....] - ETA: 6s - 10ms/st933 不在 package 字典内, 由默认值代替,可能影响效果
step 4088/4688 [=========================>....] - ETA: 6s - 10ms/ste1385.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 4090/4688 [=========================>....] - ETA: 6s - 10ms/step1312.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4128/4688 [=========================>....] - ETA: 5s - 10ms/st759 不在 package 字典内, 由默认值代替,可能影响效果
step 4150/4688 [=========================>....] - ETA: 5s - 10ms/st1969.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 4198/4688 [=========================>....] - ETA: 5s - 10ms/ste2002 不在 package 字典内, 由默认值代替,可能影响效果
step 4222/4688 [==========================>...] - ETA: 4s - 10ms/ste1457 不在 package 字典内, 由默认值代替,可能影响效果
step 4224/4688 [==========================>...] - ETA: 4s - 10ms/stepzh-US 不在 lan 字典内, 由默认值代替,可能影响效果
step 4238/4688 [==========================>...] - ETA: 4s - 10ms/st1801 不在 package 字典内, 由默认值代替,可能影响效果
step 4242/4688 [==========================>...] - ETA: 4s - 10ms/ste2020 不在 package 字典内, 由默认值代替,可能影响效果
step 4264/4688 [==========================>...] - ETA: 4s - 10ms/st2319.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4276/4688 [==========================>...] - ETA: 4s - 10ms/ste1539 不在 media_id 字典内, 由默认值代替,可能影响效果
2300 不在 package 字典内, 由默认值代替,可能影响效果
step 4296/4688 [==========================>...] - ETA: 4s - 10ms/ste2002 不在 package 字典内, 由默认值代替,可能影响效果
step 4308/4688 [==========================>...] - ETA: 3s - 10ms/ste1135.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4314/4688 [==========================>...] - ETA: 3s - 10ms/st530 不在 package 字典内, 由默认值代替,可能影响效果
step 4324/4688 [==========================>...] - ETA: 3s - 10ms/st791.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4330/4688 [==========================>...] - ETA: 3s - 10ms/st2169 不在 package 字典内, 由默认值代替,可能影响效果
step 4378/4688 [===========================>..] - ETA: 3s - 10ms/ste1593 不在 package 字典内, 由默认值代替,可能影响效果
step 4382/4688 [===========================>..] - ETA: 3s - 10ms/ste2064 不在 package 字典内, 由默认值代替,可能影响效果
step 4390/4688 [===========================>..] - ETA: 3s - 10ms/ste1355.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4398/4688 [===========================>..] - ETA: 2s - 10ms/stein_ID 不在 lan 字典内, 由默认值代替,可能影响效果
step 4412/4688 [===========================>..] - ETA: 2s - 10ms/st1799.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4450/4688 [===========================>..] - ETA: 2s - 10ms/st2184 不在 package 字典内, 由默认值代替,可能影响效果
step 4454/4688 [===========================>..] - ETA: 2s - 10ms/ste1017.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 4456/4688 [===========================>..] - ETA: 2s - 10ms/step1923 不在 package 字典内, 由默认值代替,可能影响效果
step 4492/4688 [===========================>..] - ETA: 2s - 10ms/ste2246 不在 package 字典内, 由默认值代替,可能影响效果
step 4506/4688 [===========================>..] - ETA: 1s - 10ms/st1444 不在 media_id 字典内, 由默认值代替,可能影响效果
step 4510/4688 [===========================>..] - ETA: 1s - 10ms/ste790 不在 package 字典内, 由默认值代替,可能影响效果
step 4522/4688 [===========================>..] - ETA: 1s - 10ms/ste518.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 4524/4688 [===========================>..] - ETA: 1s - 10ms/step890.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4554/4688 [============================>.] - ETA: 1s - 10ms/st2672.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4556/4688 [============================>.] - ETA: 1s - 10ms/step1369.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 4580/4688 [============================>.] - ETA: 1s - 10ms/ste2265 不在 package 字典内, 由默认值代替,可能影响效果
step 4598/4688 [============================>.] - ETA: 0s - 10ms/st1216.0 不在 dev_width 字典内, 由默认值代替,可能影响效果
step 4604/4688 [============================>.] - ETA: 0s - 10ms/st1009 不在 package 字典内, 由默认值代替,可能影响效果
step 4610/4688 [============================>.] - ETA: 0s - 10ms/st746.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4624/4688 [============================>.] - ETA: 0s - 10ms/st652.0 不在 dev_height 字典内, 由默认值代替,可能影响效果
step 4662/4688 [============================>.] - ETA: 0s - 10ms/st1986 不在 package 字典内, 由默认值代替,可能影响效果
step 4672/4688 [============================>.] - ETA: 0s - 10ms/st1929 不在 package 字典内, 由默认值代替,可能影响效果
step 4688/4688 [==============================] - 10ms/step
Predict samples: 150000
结果文件保存至: ./result1.csv
写在最后
本次比赛可调优空间非常大,选手不限于从以下方面来进行调优,如果尝试后发现效果并不理想,可以在基线项目的评论区中和大家一起讨论~
此外,目前飞桨常规系列赛事已经开放基线模板,如您愿意贡献比赛数据集、基线系统,欢迎发送邮件至zhanghongji@baidu.com,我们会将这类贡献计入飞桨开发者技术专家认证(PPDE)积分并给予开发者适当奖励。
数据处理
- 归一化方案 - 直接拉伸是最佳方式吗?
- 离散值与连续值 - 哪种方式更适合处理这些方式?是否有较为通用的方法可以尝试?
- 字段选择 - 字段真的是越多越好吗?
- 数据集划分比例 - 训练集、验证集、测试集应该怎样划分?训练集中包含验证集的Embedding字段是否合理?
首层网络选择
- Embedding还是Linear、Conv?- 如果使用卷积应该怎样处理shape?
- 多字段合并输入还是分开输入?- 分开输入效果一定好吗?哪些字段更适合合并输入?
网络(Backbone)部分搭建
- 隐层大小选择 - 宽度和层数
- 尝试复杂网络构建 - 要不要尝试一下简单的注意力机制?
- 选择更合适的激活函数
- 尝试正则化、dropout等方式避免过拟合
- 尝试非Xavier初始化方案
模型(Model)搭建以及训练相关
- 选择学习率等超参数
- 选择合适的损失函数
- 尝试不同的优化器
- 尝试使用学习率调度器
- 避免脏数据干扰(用深度学习的方式更优更方便)
提交相关
- 测试集表现最好的模型一定是最优秀的吗?
- 用准确率来衡量二分类模型的能力是最好选择吗?
代码审查
如选手成绩靠前并收到官方邮件通知代码审查,请参考该链接进行项目上传操作
快捷命令:!zip -rP [此处添加审查邮件中的Key值] [邮件中的UID值].zip /home/aistudio/
更多推荐
所有评论(0)