import os os.environ['TF_CPP_MIN_LOG_LEVEL']='2' import os from tensorflow import keras import matplotlib.pyplot as plt import numpy as np import tensorflow as tf from sklearn.model_selection import train_test_split from tensorflow.keras import Model from tensorflow.keras.layers import Conv2D, BatchNormalization, Activation, MaxPool2D, Dropout, Flatten, Dense np.set_printoptions(threshold=np.inf) from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense from tensorflow.keras.utils import plot_model # 创建模型 model = Sequential() model.add(Conv2D(6, (3, 3), activation='relu', input_shape=(3, 1024, 1))) model.add(Conv2D(16, (3, 3), activation='relu')) model.add(MaxPooling2D((2, 2))) model.add(Dropout(0.1)) model.add(Flatten()) model.add(Dense(1024, activation='relu')) model.add(Dropout(0.2)) model.add(Dense(225, activation='sigmoid')) # 输出模型结构图表 plot_model(model, show_shapes=True) ValueError: Negative dimension size caused by subtracting 3 from 1 for '{{node conv2d_5/Conv2D}} = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], explicit_paddings=[], padding="VALID", strides=[1, 1, 1, 1], use_cudnn_on_gpu=true](Placeholder, conv2d_5/Conv2D/ReadVariableOp)' with input shapes: [?,1,1022,6], [3,3,6,16].
时间: 2023-08-19 18:04:52 浏览: 61
这个错误是因为你输入的图像尺寸为 (3, 1024, 1),而第一层卷积的 filter 大小为 (3, 3),stride 为 (1, 1),没有 padding,所以输出的图像尺寸会减小。经过第一层卷积后,输出的图像尺寸为 (1, 1022, 6),再经过第二层卷积,输出的图像尺寸将会变成负数,这就导致了出现了这个错误。
建议你在输入图像时添加 padding,或者使用更小的 filter 大小和 stride。如果你想要保持输入图像的尺寸不变,可以使用 padding 或者 stride。例如:
```
model.add(Conv2D(6, (3, 3), activation='relu', padding='same', input_shape=(3, 1024, 1)))
```
这里使用了 padding='same',使得卷积后的输出图像尺寸和输入图像尺寸相同。
相关问题
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'是一个用于设置TensorFlow日志级别的环境变量。它的作用是控制TensorFlow输出的日志信息的详细程度。
具体来说,TF_CPP_MIN_LOG_LEVEL有四个可选值:
- 0:显示所有日志信息(默认值)
- 1:显示除了INFO级别以外的所有日志信息
- 2:显示除了INFO和WARNING级别以外的所有日志信息
- 3:只显示ERROR级别的日志信息
通过将TF_CPP_MIN_LOG_LEVEL设置为'3',可以将TensorFlow的日志信息限制在只显示ERROR级别的信息,从而减少不必要的输出,提高程序运行时的清晰度和性能。
os.environ['TF_CPP_MIN_LOG_LEVEL']
`os.environ['TF_CPP_MIN_LOG_LEVEL']`是一个用于设置TensorFlow日志级别的环境变量。
TensorFlow在运行时会输出各种日志信息,包括错误信息、警告信息、调试信息等。`TF_CPP_MIN_LOG_LEVEL`可以控制输出的日志等级,从而减少输出的日志信息。
以下是`TF_CPP_MIN_LOG_LEVEL`可以设置的值和对应的日志等级:
- 0:输出所有日志信息(默认值)
- 1:忽略通知信息
- 2:忽略通知信息和警告信息
- 3:同时忽略通知信息、警告信息和错误信息
例如,如果你想忽略警告和错误信息,可以在程序中添加以下代码:
```python
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
```
这将会使得TensorFlow只输出错误信息,并忽略警告和通知信息。