每次我尝试在Keras上运行我的模型时,我都会得到这个错误‘模块'tensorflow’没有属性'get_default_graph‘,而且我已经在前面的回答中尝试了几乎所有的东西。我正在尝试使用Keras后端创建一个3D-CNN。它在过去的几天里起了作用,但是昨天每次我试图创建这个模型时,我都会发现这个错误。这是我的密码:
# importing important packages
import os
import numpy as np
import tensorflow as tf
import keras
from keras.models import Sequential, Model
from keras.layers import Dense, Flatten, Conv3D, MaxPooling3D, Dropout, BatchNormalization, LeakyReLU
from tensorflow.python.keras import backend as K
from keras.regularizers import l2
from sklearn.utils import compute_class_weight
#import dataset
import numpy as np
DATA_URL = '/content/drive/My Drive/icafiledata4.npz'
with np.load(DATA_URL) as data:
X = data['arr_0']
y = data['arr_1']
BATCH_SIZE = 128
input_shape=(64, 64, 40, 20)
# Create the model
model = Sequential()
model.add(Conv3D(64, kernel_size=(3,3,3), activation='relu', input_shape=input_shape, kernel_regularizer=l2(0.005), bias_regularizer=l2(0.005), data_format = 'channels_first', padding='same'))
model.add(MaxPooling3D(pool_size=(2, 2, 2)))
model.add(Conv3D(64, kernel_size=(3,3,3), activation='relu', input_shape=input_shape, kernel_regularizer=l2(0.005), bias_regularizer=l2(0.005), data_format = 'channels_first', padding='same'))
model.add(MaxPooling3D(pool_size=(2, 2, 2)))
model.add(BatchNormalization(center=True, scale=True))
model.add(Conv3D(64, kernel_size=(3,3,3), activation='relu', input_shape=input_shape, kernel_regularizer=l2(0.005), bias_regularizer=l2(0.005), data_format = 'channels_first', padding='same'))
model.add(MaxPooling3D(pool_size=(2, 2, 2)))
model.add(Conv3D(64, kernel_size=(3,3,3), activation='relu', input_shape=input_shape, kernel_regularizer=l2(0.005), bias_regularizer=l2(0.005), data_format = 'channels_first', padding='same'))
model.add(MaxPooling3D(pool_size=(2, 2, 2)))
model.add(BatchNormalization(center=True, scale=True))
model.add(Flatten())
model.add(BatchNormalization(center=True, scale=True))
model.add(Dense(128, activation='relu', kernel_regularizer=l2(0.01), bias_regularizer=l2(0.01)))
model.add(Dropout(0.5))
model.add(Dense(128, activation='relu', kernel_regularizer=l2(0.01), bias_regularizer=l2(0.01)))
model.add(Dense(1, activation='sigmoid', kernel_regularizer=l2(0.01), bias_regularizer=l2(0.01)))
# Compile the model
model.compile(optimizer = tf.keras.optimizers.Adam(lr=0.001), loss='binary_crossentropy', metrics=['accuracy'])
有人有小费吗?非常感谢!附加信息: Tensorflow 2.2.0,keras 2.3.0
发布于 2020-08-04 10:50:36
请尝试:
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Dense, Flatten, Conv3D, MaxPooling3D, Dropout, BatchNormalization, LeakyReLU
from tensorflow.keras.regularizers import l2
而不是:
import keras
from keras.models import Sequential, Model
from keras.layers import Dense, Flatten, Conv3D, MaxPooling3D, Dropout, BatchNormalization, LeakyReLU
from keras.regularizers import l2
TensorFlow 2.0及更高版本的 Keras 内置;不需要将Keras单独加载到您的环境中,只需更改导入语句即可。
https://stackoverflow.com/questions/63253248
复制相似问题