我正在尝试使用Alexnet检测糖尿病视网膜病变。 这是密码
path="D:\\dataset\\train\\t\\"
count = 1
imgList=list()
labelList=list()
ite = 1
print("Loading Model design ....")
json_file = open('Model.json', 'r')
loaded_model_json = json_file.read()
json_file.close()
loaded_model = model_from_json(loaded_model_json)
print("Loading weights ....")
loaded_model.load_weights("Model_weight.h5")
opt = Adam(lr=0.001)
loaded_model.compile(optimizer=opt, loss=keras.losses.sparse_categorical_crossentropy, metrics=['accuracy'])
while ite <= 1:
limit = 10 * ite
imgList=list()
labelList=list()
while count <= limit:
imgC0 = path+"class_0_img_%d.jpeg" %(count)
imgC1 = path+"class_1_img_%d.jpeg" %(count)
imgC2 = path+"class_2_img_%d.jpeg" %(count)
imgC3 = path+"class_3_img_%d.jpeg" %(count)
imgC4 = path+"class_4_img_%d.jpeg" %(count)
lC0 = np.zeros((1,17))
lC1 = np.zeros((1,17))
lC2 = np.zeros((1,17))
lC3 = np.zeros((1,17))
lC4 = np.zeros((1,17))
lC0[0,0] = 1
lC1[0,1] = 1
lC2[0,2] = 1
lC2[0,3] = 1
lC2[0,4] = 1
im0=cv.resize(cv.imread(imgC0),(227,227))
im1=cv.resize(cv.imread(imgC1),(227,227))
im2=cv.resize(cv.imread(imgC2),(227,227))
im3=cv.resize(cv.imread(imgC3),(227,227))
im4=cv.resize(cv.imread(imgC4),(227,227))
imgList.append(im0)
imgList.append(im1)
imgList.append(im2)
imgList.append(im3)
imgList.append(im4)
labelList.append(lC0)
labelList.append(lC1)
labelList.append(lC2)
labelList.append(lC3)
labelList.append(lC4)
print(count)
del(imgC0)
del(imgC1)
del(imgC2)
del(imgC3)
del(imgC4)
del(lC0)
del(lC1)
del(lC2)
del(lC3)
del(lC4)
count += 1
labelMatrix = labelList
xtr = np.array(imgList)
xtr = xtr.reshape(-1,227,227,3)
ytr = np.array(labelMatrix)
ytr = ytr.reshape(-1,17)
print(xtr.shape)
print(ytr.shape)
print(type(ytr))
print("Model Training ....")
loaded_model.fit(xtr,ytr,epochs=1,batch_size=50,validation_split=0.1)
print("Saving Model weights ....")
#loaded_model.save_weights("Model_weight.h5")
ite += 1
del(imgList)
del(labelList)
print("Finished ....")
我得到一个错误,因为:
文件“”,第1行,在 运行文件('D:/Project/ModelTrain.py',wdir='D:/Project')
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第827行,在runfile中 execfile(文件名、命名空间)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\spyder\u kernels\customize\spyderrcustomize.py”,第110行,在execfile中 exec(编译(f.read(),文件名,'exec'),命名空间)
文件“D:/Project/ModelTrain.py”,第103行,在 已加载的模型拟合(xtr、ytr、历代=1、批次大小=50、验证分割=0.1)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training.py”,第728行,格式为fit 使用多处理=使用多处理)
文件“C:\Users\Ammar amer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u v2.py”,第324行 总(单位时间=时间)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u v2.py”,第123行,在run\u one\u中 批处理输出=执行函数(迭代器)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u v2\u utils.py”,第86行,执行函数 分布函数(输入函数)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\eager\def\u function.py”,第457行,在调用中 结果=自身调用(*args,**kwds)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\eager\def\u function.py”,第503行,在调用中 self.\u initialize(args、kwds、add\u initializer\u to=initializer\u map)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\eager\def\u function.py”,第408行,在 *args,**科威特第纳尔)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\eager\function.py”,第1848行,位于“get\u concrete\u function\u internal\u garbage\u collected”中 图函数,自我,可能定义函数(args,kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\eager\function.py”,第2150行,在定义函数中 graph\u function=self.\u create\u graph\u function(args,kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\eager\function.py”,第2041行,在创建图形函数中 按值捕获=自身。_按值捕获)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\framework\func\u graph.py”,第915行,位于func\u py\u func的func\u图中 func_outputs=python_func(*func_args,**func_kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\eager\def\u function.py”,第358行,包装为 返回弱包装的(包装的(*args,**kwds)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u v2\u utils.py”,第73行,在分布式函数中 per_replica_函数,args=(模型,x,y,样本权重))
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\distribute\distribute\u lib.py”,第760行,在实验运行版本2中 返回self.\u扩展。为每个\u副本调用\u(fn,args=args,kwargs=kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\distribute\distribute\u lib.py”,第1787行,用于调用每个副本 返回自我。为每个副本(fn、ARG、kwargs)调用
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\distribute\distribute\u lib.py”,第2132行,位于每个副本的调用中 返回fn(*args,**kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\autgraph\impl\api.py”,包装中的第292行 返回函数(*args,**kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u v2\u utils.py”,第264行,在批量生产中 输出\损失\度量=模型。\输出\损失\度量)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u eager.py”,第315行,在批处理的列中 模型、输出、目标、样本权重=样本权重、遮罩=遮罩)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u eager.py”,第74行,在\u eager\u metrics\u fn中 跳过\u目标\u掩码=模型。\u准备\u跳过\u目标\u掩码()
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training.py”,第2063行,在“handle\u metrics”中 目标、输出、输出(U)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training.py”,第2014行,在每个输出的句柄度量中 度量值(fn,y_真,y_pred,权重=权重,掩码=掩码)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\engine\training\u utils.py”,第1067行,在call\u metric\u函数中 返回度量值fn(y_真,y_pred,样本重量=重量)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\metrics.py”,第193行,在调用中 副本\u本地\u fn,*args,**kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\distribute\distributed\u training\u utils.py”,第1135行,在call\u replica\u local\fn中 返回fn(*args,**kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\metrics.py”,第176行,在副本\u local\u fn中 update_op=self.update_state(*args,**kwargs)#pylint:disable=not callable
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\utils\metrics\u utils.py”,第75行,格式为: update_op=update_state_fn(*args,**kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\metrics.py”,第581行,处于更新状态 匹配=self.\u fn(y\u true,y\u pred,**self.\u fn\u kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\keras\metrics.py”,第2778行,稀疏分类 y_真=数组运算挤压(y_真,[-1])
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\util\dispatch.py”,第180行,在包装器中 返回目标(*args,**kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\util\deprecation.py”,第507行,新函数 返回函数(*args,**kwargs)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\ops\array\u ops.py”,第3649行,压缩 返回gen_数组操作挤压(输入、轴、名称)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\ops\gen\u array\u ops.py”,第10071行,压缩 “挤压”,输入=输入,挤压直径=轴,名称=名称)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\framework\op\u def\u library.py”,第793行,位于“应用”op\u helper中 op_def=op_def)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\framework\func\u graph.py”,第548行,在create\u op中 计算机(U设备)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\framework\ops.py”,第3429行,位于\u create\u op\u internal中 op_def=op_def)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\framework\ops.py”,第1773行,位于init 控制(输入操作)
文件“C:\Users\Ammar Ameer\Anaconda3\lib\site packages\tensorflow\u core\python\framework\ops.py”,第1613行,在_create\u C\u op中 提高价值或(str(e))
ValueError:无法压缩dim[1],预期维度为1,对于输入形状为[?,17]的“度量/精度/压缩”(op:“压缩”)获得17
有人能帮我吗。。 我已将模型另存为
model = Sequential()
# 1st Convolutional Layer
model.add(Conv2D(filters=96, input_shape=(227,227,3), kernel_size=(11,11), strides=(4,4), padding="valid", activation = "relu"))
# Max Pooling
model.add(MaxPool2D(pool_size=(3,3), strides=(2,2), padding="valid"))
# 2nd Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(5,5), strides=(1,1), padding="same", activation = "relu"))
# Max Pooling
model.add(MaxPool2D(pool_size=(3,3), strides=(2,2), padding="valid"))
# 3rd Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding="same", activation = "relu"))
# 4th Convolutional Layer
model.add(Conv2D(filters=384, kernel_size=(3,3), strides=(1,1), padding="same", activation = "relu"))
# 5th Convolutional Layer
model.add(Conv2D(filters=256, kernel_size=(3,3), strides=(1,1), padding="same", activation = "relu"))
# Max Pooling
model.add(MaxPool2D(pool_size=(3,3), strides=(2,2), padding="valid"))
# Passing it to a Fully Connected layer
model.add(Flatten())
# 1st Fully Connected Layer
model.add(Dense(units = 9216, activation = "relu"))
# 2nd Fully Connected Layer
model.add(Dense(units = 4096, activation = "relu"))
# 3rd Fully Connected Layer
model.add(Dense(4096, activation = "relu"))
# Output Layer
model.add(Dense(17, activation = "softmax")) #As we have two classes
opt = Adam(lr=0.001)
model.compile(optimizer=opt, loss=keras.losses.sparse_categorical_crossentropy, metrics=['accuracy'])
model.summary()
model_jason = model.to_json()
with open("Model.json","w") as json_file:
json_file.write(model_jason)
model.save_weights("Model_weight.h5")
请帮我解决这个问题
目前没有回答
相关问题 更多 >
编程相关推荐