【发布时间】:2019-07-13 03:37:21
【问题描述】:
我正在运行简单的密集层,但 Gpu 负载和 Cpu 负载一直都很低。 打印(device_lib.list_local_devices())
2019-02-19 19:06:23.911633: 我 tensorflow/core/platform/cpu_feature_guard.cc:141] 你的 CPU 支持 此 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(GHz): 1.83 pciBusID: 0000:65:00.0 totalMemory: 8.00GiB freeMemory: 6.55GiB 2019-02-19 19:06:24.237952: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] 添加可见 gpu 设备:0 2019-02-19 19:06:25.765790:我 tensorflow/core/common_runtime/gpu/gpu_device.cc:982] 设备 用强度 1 边缘矩阵互连 StreamExecutor:2019-02-19 19:06:25.769303:我 张量流/核心/common_runtime/gpu/gpu_device.cc:988] 0 2019-02-19 19:06:25.771334: 我 张量流/核心/common_runtime/gpu/gpu_device.cc:1001] 0:N 2019-02-19 19:06:25.776384: 我 tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] 创建 TensorFlow 设备 (/device:GPU:0 with 6288 MB memory) -> 物理 GPU (设备:0,名称:GeForce RTX 2080,pci 总线 ID:0000:65:00.0,计算 能力:7.5)[名称:“/设备:CPU:0”设备类型:“CPU” memory_limit:268435456 locality {}化身:5007262859900510599 , 名称: "/device:GPU:0" device_type: "GPU" memory_limit: 6594058650 位置 { bus_id: 1 链接 { } } 化身: 16804701769178738279 physical_device_desc:“设备:0,名称:GeForce RTX 2080,pci 总线 ID:0000:65:00.0,计算能力:7.5"
至少,它在 GPU 上运行。但我不知道这是否是在这个 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)>
【问题讨论】:
-
你的输入管道是什么样子的?
-
谢谢评论,我放了模型总结。
-
如何将数据输入到模型中?你训练什么样的数据?
-
我的意思是你的代码是什么样的?您使用什么函数向模型提供数据?
-
你是怎么得到这些
x=X_train_scaled, y=y_train的?
标签: tensorflow keras deep-learning