Got ValueError:尝试将具有不受支持类型(<class 'NoneType'>)的值(无)转换为张量 [英] Got ValueError: Attempt to convert a value (None) with an unsupported type (<class 'NoneType'>) to a Tensor
问题描述
当我尝试在 2021 年 6 月运行 colab 笔记本时,该笔记本创建于 2020 年 12 月并且运行良好,但出现错误.所以我改了
When I tried to run a colab notebook on 2021 June, which was created on 2020 december and ran fine I got an error. So I changed
baseModel = tf.keras.applications.VGG16(weights="imagenet",
include_top= False,
input_tensor=Input(shape=(224, 224, 3)))
到
baseModel = tf.keras.applications.VGG19(weights="imagenet",
include_top= False,
input_shape=(224, 224, 3))
但是,当我继续执行笔记本时,出现错误ValueError: Attempt to convert a value (None) with an unsupported type (
However when I continued to execute the notebook I got an error "ValueError: Attempt to convert a value (None) with an unsupported type (<class 'NoneType'>) to a Tensor." in a later stage.
代码:
import numpy as np
from tqdm import tqdm
import math
import os
import keras
from keras.models import *
from keras.layers import *
from keras.layers.core import Dense, Flatten
from keras.optimizers import Adam
from keras.metrics import categorical_crossentropy
from keras.preprocessing.image import ImageDataGenerator
from keras.layers.normalization import BatchNormalization
from keras.layers.convolutional import Conv2D
from sklearn.metrics import confusion_matrix
from keras.applications.densenet import DenseNet121
from keras.callbacks import *
from keras import backend as K
K.clear_session()
import itertools
import matplotlib.pyplot as plt
import cv2
import matplotlib.cm as cm
from tensorflow.keras.utils import to_categorical
from sklearn.preprocessing import LabelBinarizer,LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
import tensorflow as tf
baseModel = tf.keras.applications.VGG19(weights="imagenet",
include_top= False,
input_shape=(224, 224, 3))
headModel = baseModel.output
headModel = AveragePooling2D(pool_size=(4, 4))(headModel)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(64, activation="relu")(headModel)
headModel = Dropout(0.4)(headModel)
headModel = Dense(3, activation="softmax")(headModel)
model = Model(inputs=baseModel.input, outputs=headModel)
model.summary()
错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-18-6695ac43a942> in <module>()
1 headModel = baseModel.output
2 headModel = AveragePooling2D(pool_size=(4, 4))(headModel)
----> 3 headModel = Flatten(name="flatten")(headModel)
4 headModel = Dense(64, activation="relu")(headModel)
5 headModel = Dropout(0.4)(headModel)
5 frames
/usr/local/lib/python3.7/dist-packages/tensorflow/python/framework/constant_op.py in convert_to_eager_tensor(value, ctx, dtype)
96 dtype = dtypes.as_dtype(dtype).as_datatype_enum
97 ctx.ensure_initialized()
---> 98 return ops.EagerTensor(value, ctx.device_name, dtype)
99
100
ValueError: Attempt to convert a value (None) with an unsupported type (<class 'NoneType'>) to a Tensor.
更新导入:
import numpy as np
from tqdm import tqdm
import math
import os
import tensorflow as tf
import tensorflow.keras
from tensorflow.keras.models import *
from tensorflow.keras.layers import *
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.metrics import categorical_crossentropy
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.layers import Conv2D
from sklearn.metrics import confusion_matrix
from tensorflow.keras.applications.densenet import DenseNet121
from tensorflow.keras.callbacks import *
from tensorflow.keras import backend as K
K.clear_session()
import itertools
import matplotlib.pyplot as plt
import cv2
import matplotlib.cm as cm
from tensorflow.keras.utils import to_categorical
from sklearn.preprocessing import LabelBinarizer,LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
推荐答案
正如@Frightera 建议的那样,您正在混合 keras
和 tensorflow.keras
导入.尝试使用所有 tensorflow.keras
导入的代码,
As @Frightera suggested, you are mixing keras
and tensorflow.keras
imports. Try the code with all tensorflow.keras
imports,
import numpy as np
from tqdm import tqdm
import math
import os
from tensorflow.keras.models import *
from tensorflow.keras.layers import *
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.metrics import categorical_crossentropy
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from sklearn.metrics import confusion_matrix
from tensorflow.keras.applications.densenet import DenseNet121
from tensorflow.keras.callbacks import *
from tensorflow.keras import backend as K
K.clear_session()
import itertools
import matplotlib.pyplot as plt
import cv2
import matplotlib.cm as cm
from tensorflow.keras.utils import to_categorical
from sklearn.preprocessing import LabelBinarizer,LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.metrics import classification_report
from sklearn.metrics import confusion_matrix
import tensorflow as tf
baseModel = tf.keras.applications.VGG19(weights="imagenet",
include_top= False,
input_shape=(224, 224, 3))
headModel = baseModel.output
headModel = AveragePooling2D(pool_size=(4, 4))(headModel)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(64, activation="relu")(headModel)
headModel = Dropout(0.4)(headModel)
headModel = Dense(3, activation="softmax")(headModel)
model = Model(inputs=baseModel.input, outputs=headModel)
model.summary()
这篇关于Got ValueError:尝试将具有不受支持类型(<class 'NoneType'>)的值(无)转换为张量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!