Я обучил классификатор с усилением градиента с использованием кода TF https://www.tensorflow.org/tutorials/estimators/boosted_trees_model_understanding
, но классификатор с усилением градиента оценки TF внезапно остановился во время тренировки
Я думаю, что при начальном поприще требуется несколько шагов, чем внезапноостановлено без каких-либо исключений print
как я могу получить причину, по которой произошел сбой Python
Трудно понять причину, по которой он остановился
res:
lib : TF-gpu 1.13.1
cuda : 10.0
cudnn : 7.5
logs:
2019-04-15 16: 40: 26.175889: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 1433] Найдено устройство 0 со свойствами: name: GeForceGTX 1060 6 Гб, основной: 6, минорный: 1 memoryClockRate (ГГц): 1,7845 pciBusID: 0000: 07: 00.0 totalMemory: 6.00GiB freeMemory: 4.97GiB 2019-04-15 16: 40: 26.182620: I tenorflow / core / common_runtime / gpu /gpu_device.cc:1512] Добавление видимых устройств gpu: 0 2019-04-15 16: 40: 26.832040: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 984] Соединение устройств StreamExecutor с прочностью 1 матрица ребер: 2019-04-15 16: 40: 26,835620: я десяткиorflow / core / common_runtime / gpu / gpu_device.cc: 990] 0 2019-04-15 16: 40: 26.836840: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 1003] 0: N 2019-04-15 16: 40: 26.838276: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 1115] Создано устройство TensorFlow (/ job: localhost / replica: 0 / task: 0 / device: GPU: 0 с 4716 MB памяти) -> физическоеГрафический процессор (устройство: 0, имя: GeForce GTX 1060 6 ГБ, идентификатор шины pci: 0000: 07: 00.0, вычислительные возможности: 6.1) ПРЕДУПРЕЖДЕНИЕ: tenorflow: из D: \ python \ lib \ site-packages \ensorflow \ python \ training \saver.py:1266: checkpoint_exists (из tenorflow.python.training.checkpoint_management) устарел и будет удален в следующей версии.Инструкции по обновлению: используйте стандартные файловые API для проверки файлов с этим префиксом.ПРЕДУПРЕЖДЕНИЕ: tenorsflow: From D: \ python \ lib \ site-packages \ tenorflow \ python \ training \ saver.py: 1070: get_checkpoint_mtimes (from tenzorflow.python.training.checkpoint_management) устарело и будет удалено в следующей версии.Инструкция по обновлению: используйте стандартные файловые утилиты, чтобы получить mtimes.ВНИМАНИЕ: tenorflow: возникла проблема при сериализации ресурсов.Тип не поддерживается, или типы элементов не соответствуют типу поля в CollectionDef.Обратите внимание, что это предупреждение и, вероятно, безопасно игнорировать.У объекта '_Resource' нет атрибута 'name'. ПРЕДУПРЕЖДЕНИЕ: tenorflow: возникла проблема при сериализации ресурсов.Тип не поддерживается, или типы элементов не соответствуют типу поля в CollectionDef.Обратите внимание, что это предупреждение и, вероятно, безопасно игнорировать.У объекта '_Resource' нет атрибута 'name'
D: \ py> (только что закончил на тренировке)
trn = pd.read_csv('data/santander-customer-transaction-prediction/train.csv')
tst = pd.read_csv('data/santander-customer-transaction-prediction/test.csv')
#trn = upsample(trn[trn.target==0], trn[trn.target==1])
# trn = downsample(trn[trn.target==0], trn[trn.target==1])
features = trn.columns.values[2:202]
target_name = trn.columns.values[1]
train=trn[features]
target=trn[target_name]
NUM_EXAMPLES = len (target)
print (NUM_EXAMPLES)
feat1 = train.corrwith(target).sort_values().head(20).index
feat2 = train.corrwith(target).sort_values().tail(20).index
featonly = feat1.append(feat2)
feat = featonly.append(pd.Index(['target']))
train_origin, tt = train_test_split(trn, test_size=0.2)
train = train_origin[featonly]
target = train_origin[target_name]
test = tst[featonly]
target_name_tst = tst.columns.values[1]
target_tst=tst[target_name_tst]
val_origin=tt
val_train = tt[featonly]
val_target = tt[target_name]
# Training and evaluation input functions.
train_input_fn = make_input_fn(train, target)
val_input_fn = make_input_fn(val_train, val_target)
ttt=tf.estimator.inputs.pandas_input_fn(x=test,num_epochs=1,shuffle=False)
del train,target,val_train,train_origin,trn,tst
fc = tf.feature_column
feature_columns = []
for feature_name in featonly:
feature_columns.append(fc.numeric_column(feature_name,dtype=tf.float32))
#feature_columns
#5
#tf.logging.set_verbosity(tf.logging.INFO)
#logging_hook = tf.train.LoggingTensorHook({"loss" : loss, "accuracy" : accuracy}, every_n_iter=10)
params = {
'n_trees': 50,
'max_depth': 3,
'n_batches_per_layer': 1,
# You must enable center_bias = True to get DFCs. This will force the model to
# make an initial prediction before using any features (e.g. use the mean of
# the training labels for regression or log odds for classification when
# using cross entropy loss).
'center_bias': True
}
# config = tf.estimator.RunConfig().replace(keep_checkpoint_max = 1,
# log_step_count_steps=20, save_checkpoints_steps=20)
est = tf.estimator.BoostedTreesClassifier(feature_columns, **params,model_dir='d:\py/model/')
est.train(train_input_fn, max_steps=50)
------------------------------------------- остановлен
metrics = est.evaluate(input_fn=val_input_fn,steps=1)
results = est.predict(input_fn=ttt )
result_list = list(results)
classi = list(map(lambda x : x['classes'][0].decode("utf-8"), result_list))
num = list(range(0,len(classi)))
numi = list(map(lambda x : 'test_' + str(x),num))
#df1 = pd.DataFrame(columns=('ID_code','target'))
df_result = pd.DataFrame({'ID_code' : numi, 'target' : classi})
df_result.to_csv('result/submission03.csv',index=False)
def make_input_fn(X, y, n_epochs=None, shuffle=True):
def input_fn():
NUM_EXAMPLES = len(y)
dataset = tf.data.Dataset.from_tensor_slices((dict(X), y))
# dataset = tf.data.Dataset.from_tensor_slices((X.to_dict(orient='list'), y))
#if shuffle:
# dataset = dataset.shuffle(NUM_EXAMPLES)
# For training, cycle thru dataset as many times as need (n_epochs=None).
dataset = (dataset.repeat(n_epochs).batch(NUM_EXAMPLES))
return dataset
return input_fn
должен быть показан результат оценки