Я использую простые плотные слои, но загрузка процессора и процессора постоянно низкие.
print (device_lib.list_local_devices ())
2019-02-19 19:06:23.911633: I tenorflow / core / platform / cpu_feature_guard.cc: 141] Ваш ЦП поддерживает инструкции, которые этот двоичный файл TensorFlow не был скомпилирован для использования: AVX AVX2
2019-02-19 19: 06: 24.231261: Itensorflow /core / common_runtime / gpu / gpu_device.cc: 1432] Найдено устройство 0 со свойствами: имя: GeForce RTX 2080, старшее: 7 минорных: 5 memoryClockRate (ГГц): 1,83 pciBusID: 0000: 65: 00.0 всего Память: 8,00 ГБ freeMemory: 6,55 ГБ2019-02-19 19: 06: 24.237952: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 1511] Добавление видимых устройств gpu: 0 2019-02-19 19: 06: 25.765790: I tenorflow / core / common_runtime /gpu / gpu_device.cc: 982] Соединение устройств StreamExecutor с матрицей фронта прочности 1: 2019-02-19 19: 06: 25.769303: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 988] 0 2019-02-19 19: 06: 25.771334: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 1001] 0: N 2019-02-19 19:06:25.776384: I tenorflow / core / common_runtime / gpu / gpu_device.cc: 1115] Создано устройство TensorFlow (/ устройство: GPU: 0 с 6288 МБ памяти) -> физический GPU (устройство: 0, имя: GeForce RTX 2080, идентификатор шины pci: 0000: 65: 00.0, вычислительные возможности: 7.5) [имя: "/ device: CPU: 0" device_type: "CPU" memory_limit: 268435456 locality {} incarnation: 5007262859900510599, name: "/ device: GPU: 0" device_type:«GPU» memory_limit: 6594058650 locality {bus_id: 1 воплощение {}}: 16804701769178738279 Physical_device_desc: «устройство: 0, имя: GeForce RTX 2080, идентификатор шины pci: 0000: 65: 00.0, вычислительная возможность: 7,5»
В аренде он работает на GPU.Но я не знаю, является ли это максимальным пределом для прохождения этой сети глубокого обучения в этом графическом процессоре.
EDIT2: набор данных
https://archive.ics.uci.edu/ml/datasets/combined+cycle+power+plant
Это около 10000 точек данных и 4 переменных описания.
EDIT3: код, это действительно просто.
num_p = 8
model = Sequential()
model.add(Dense(8*num_p, input_dim=input_features, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(16*num_p, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(16*num_p, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(16*num_p, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(16*num_p, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(8*num_p, input_dim=input_features, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(1, activation='linear'))
model.compile(loss='mae', optimizer='adam')
es = EarlyStopping(monitor='val_loss', min_delta=0.0005, patience=200, verbose=0, mode='min')
his = model.fit(x=X_train_scaled, y=y_train, batch_size=64, epochs=10000, verbose=0,
validation_split=0.2, callbacks=[es])
EDIT4: код входных данных
df = pd.read_csv("dataset")
X_train, X_test, y_train, y_test =
train_test_split(df.iloc[:, :-1].values, df.iloc[:, -1].values)
scaler = MinMaxScaler()
scaler.fit(X_train)
X_train_scaled = scaler.transform(X_train)
batch_size = 64
dataset = tf.data.Dataset.from_tensor_slices((X_train_scaled, y_train))
print(dataset)
dataset = dataset.cache()
print(dataset)
dataset = dataset.shuffle(len(X_train_scaled))
print(dataset)
dataset = dataset.repeat()
print(dataset)
dataset = dataset.batch(batch_size)
print(dataset)
dataset = dataset.prefetch(batch_size*10)
print(dataset)
<TensorSliceDataset shapes: ((4,), ()), types: (tf.float64, tf.float64)>
<CacheDataset shapes: ((4,), ()), types: (tf.float64, tf.float64)>
<ShuffleDataset shapes: ((4,), ()), types: (tf.float64, tf.float64)>
<RepeatDataset shapes: ((4,), ()), types: (tf.float64, tf.float64)>
<BatchDataset shapes: ((?, 4), (?,)), types: (tf.float64, tf.float64)>
<PrefetchDataset shapes: ((?, 4), (?,)), types: (tf.float64, tf.float64)>