如何解决这个 ValueError: Dimension 1 in both shape must be equal 问题?

如何解决如何解决这个 ValueError: Dimension 1 in both shape must be equal 问题?

调整数据集大小

import cv2
from PIL import Image
import numpy as np
import h5py

#threshold function is disabled when resizing input images
path = "masks_train1/"

for i in range(1,220):
    dim = (256,256) #(w,h)
    image = cv2.imread(path + str(i) + ".jpg",0)
    resized = cv2.resize(image,dim,interpolation=cv2.INTER_AREA)
    (thresh,im_bw) = cv2.threshold(resized,128,255,cv2.THRESH_BINARY)
    cv2.imwrite('mask_train/' + str(i) + '.png',im_bw)


images = []
masks = []
for i in range(1,220):
    img = Image.open("masks_train1/" + str(i) + ".jpg")
    arr = np.array(img)
    images.append(arr)
    img = Image.open("mask_train/" + str(i) + ".png")
    arr = np.array(img)
    arr = np.expand_dims(arr,-1)
    masks.append(arr)


images = np.array(images)
masks = np.array(masks)
masks.shape

输出:(219,256,1)

with h5py.File("Dataset_train1.h5",'w') as hdf:
    hdf.create_dataset('images',data=images,compression='gzip',compression_opts=9)
    hdf.create_dataset('masks',data=masks,compression_opts=9)

Unet 训练和测试文件

import numpy as np 
import os
import cv2

from keras.models import *
from keras.layers import *
from keras.optimizers import *

from keras import backend as keras
from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras.callbacks import TensorBoard
import matplotlib.pyplot as plt

def unet(input_size = (256,3)):
    inputs = Input(input_size)
    conv1 = Conv2D(64,3,activation = 'relu',padding = 'same',kernel_initializer = 'he_normal'
                                               )(inputs)
    
    conv1 = Conv2D(64,kernel_initializer = 'he_normal'
                                               )(conv1)
    
    pool1 = MaxPooling2D(pool_size=(2,2))(conv1)
    
    conv2 = Conv2D(128,kernel_initializer = 'he_normal'
                                                )(pool1)
    
    conv2 = Conv2D(128,kernel_initializer = 'he_normal'
                                                )(conv2)
    
    pool2 = MaxPooling2D(pool_size=(2,2))(conv2)
    
    conv3 = Conv2D(256,kernel_initializer = 'he_normal'
                                                )(pool2)
    
    conv3 = Conv2D(256,kernel_initializer = 'he_normal'
                                                )(conv3)
    
    pool3 = MaxPooling2D(pool_size=(2,2))(conv3)
    
    conv4 = Conv2D(512,kernel_initializer = 'he_normal'
                                                )(pool3)
    
    conv4 = Conv2D(512,kernel_initializer = 'he_normal'
                                                )(conv4)
    
    drop4 = Dropout(0.5)(conv4)
    
    pool4 = MaxPooling2D(pool_size=(2,2))(drop4)

    conv5 = Conv2D(1024,kernel_initializer = 'he_normal'
                                                 )(pool4)
    
    conv5 = Conv2D(1024,kernel_initializer = 'he_normal'
                                                 )(conv5)
    
    drop5 = Dropout(0.5)(conv5)

    up6 = Conv2D(512,2,kernel_initializer = 'he_normal'
                                              )(UpSampling2D(size = (2,2))(drop5))
    
    merge6 = concatenate([drop4,up6])
    
    conv6 = Conv2D(512,kernel_initializer = 'he_normal'
                                                )(merge6)
    
    conv6 = Conv2D(512,kernel_initializer = 'he_normal'
                                                )(conv6)

    up7 = Conv2D(256,2))(conv6))
    
    merge7 = concatenate([conv3,up7])
    
    conv7 = Conv2D(256,kernel_initializer = 'he_normal'
                                                )(merge7)
    
    conv7 = Conv2D(256,kernel_initializer = 'he_normal'
                                                )(conv7)

    
    up8 = Conv2D(128,2))(conv7))
    
    merge8 = concatenate([conv2,up8])
    
    conv8 = Conv2D(128,kernel_initializer = 'he_normal'
                                                )(merge8)
    
    conv8 = Conv2D(128,kernel_initializer = 'he_normal'
                                                )(conv8)

    up9 = Conv2D(64,kernel_initializer = 'he_normal'
                                             )(UpSampling2D(size = (2,2))(conv8))
    
    merge9 = concatenate([conv1,up9])
    
    conv9 = Conv2D(64,kernel_initializer = 'he_normal'
                                               )(merge9)
    
    conv9 = Conv2D(64,kernel_initializer = 'he_normal'
                                               )(conv9)
    
    conv9 = Conv2D(2,kernel_initializer = 'he_normal'
                                              )(conv9)
    
    conv10 = Conv2D(1,1,activation = 'sigmoid')(conv9)

    model = Model(inputs = inputs,outputs = conv10)

    model.compile(optimizer = Adam(lr = 1e-3),loss = 'binary_crossentropy',metrics = ['accuracy'])
    
    
    return model


import h5py

print('*'*30)
print('Loading and preprocessing train data...')
print('*'*30)
file = h5py.File('Dataset_train1.h5','r')
imgs_train = file.get('images')
imgs_mask_train = file.get('masks')
imgs_train = np.array(imgs_train)
imgs_mask_train = np.array(imgs_mask_train)

imgs_train = imgs_train.astype('float32')
mean = np.mean(imgs_train)  # mean for data centering
std = np.std(imgs_train)  # std for data normalization

imgs_train -= mean
imgs_train /= std

imgs_mask_train = imgs_mask_train.astype('float32')
imgs_mask_train /= 255  # scale masks to [0,1]


print('*'*30)
print('Creating and compiling model...')
print('*'*30)
model = unet()
model_checkpoint = ModelCheckpoint('weights.h5',monitor='val_loss',save_best_only=True)
tensorboard = TensorBoard(log_dir='tensorboard/',write_graph=True,write_images=True)


model.summary()
Model: "functional_7"

总参数:31,032,837 可训练参数:31,837 不可训练的参数:0


print('*'*30)
print('Fitting model...')
print('*'*30)
history =  model.fit(imgs_train,imgs_mask_train,batch_size=15,epochs=30,verbose=2,shuffle=True,validation_split=0.2,callbacks=[model_checkpoint,tensorboard])


**output problem**
******************************
Fitting model...
******************************
Epoch 1/30
WARNING:tensorflow:Model was constructed with shape (None,3) for input Tensor("input_5:0",shape=(None,3),dtype=float32),but it was called on an input with incompatible shape (None,600,1200,3).
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-22-69f1645fb376> in <module>
      2 print('Fitting model...')
      3 print('*'*30)
----> 4 history =  model.fit(imgs_train,5           validation_split=0.2,6           callbacks=[model_checkpoint,tensorboard])

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py in _method_wrapper(self,*args,**kwargs)
    106   def _method_wrapper(self,**kwargs):
    107     if not self._in_multi_worker_mode():  # pylint: disable=protected-access
--> 108       return method(self,**kwargs)
    109 
    110     # Running inside `run_distribute_coordinator` already.

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py in fit(self,x,y,batch_size,epochs,verbose,callbacks,validation_split,validation_data,shuffle,class_weight,sample_weight,initial_epoch,steps_per_epoch,validation_steps,validation_batch_size,validation_freq,max_queue_size,workers,use_multiprocessing)
   1096                 batch_size=batch_size):
   1097               callbacks.on_train_batch_begin(step)
-> 1098               tmp_logs = train_function(iterator)
   1099               if data_handler.should_sync:
   1100                 context.async_wait()

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\eager\def_function.py in __call__(self,**kwds)
    778       else:
    779         compiler = "nonXla"
--> 780         result = self._call(*args,**kwds)
    781 
    782       new_tracing_count = self._get_tracing_count()

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\eager\def_function.py in _call(self,**kwds)
    812       # In this case we have not created variables on the first call. So we can
    813       # run the first trace but we should fail if variables are created.
--> 814       results = self._stateful_fn(*args,**kwds)
    815       if self._created_variables:
    816         raise ValueError("Creating variables on a non-first call to a function"

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\eager\function.py in __call__(self,**kwargs)
   2826     """Calls a graph function specialized to the inputs."""
   2827     with self._lock:
-> 2828       graph_function,args,kwargs = self._maybe_define_function(args,kwargs)
   2829     return graph_function._filtered_call(args,kwargs)  # pylint: disable=protected-access
   2830 

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\eager\function.py in _maybe_define_function(self,kwargs)
   3208           and self.input_signature is None
   3209           and call_context_key in self._function_cache.missed):
-> 3210         return self._define_function_with_shape_relaxation(args,kwargs)
   3211 
   3212       self._function_cache.missed.add(call_context_key)

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\eager\function.py in _define_function_with_shape_relaxation(self,kwargs)
   3139           expand_composites=True)
   3140 
-> 3141     graph_function = self._create_graph_function(
   3142         args,kwargs,override_flat_arg_shapes=relaxed_arg_shapes)
   3143     self._function_cache.arg_relaxed[rank_only_cache_key] = graph_function

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\eager\function.py in _create_graph_function(self,override_flat_arg_shapes)
   3063     arg_names = base_arg_names + missing_arg_names
   3064     graph_function = ConcreteFunction(
-> 3065         func_graph_module.func_graph_from_py_func(
   3066             self._name,3067             self._python_function,~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\framework\func_graph.py in func_graph_from_py_func(name,python_func,signature,func_graph,autograph,autograph_options,add_control_dependencies,arg_names,op_return_value,collections,capture_by_value,override_flat_arg_shapes)
    984         _,original_func = tf_decorator.unwrap(python_func)
    985 
--> 986       func_outputs = python_func(*func_args,**func_kwargs)
    987 
    988       # invariant: `func_outputs` contains only Tensors,CompositeTensors,~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\eager\def_function.py in wrapped_fn(*args,**kwds)
    598         # __wrapped__ allows AutoGraph to swap in a converted function. We give
    599         # the function a weak reference to itself to avoid a reference cycle.
--> 600         return weak_wrapped_fn().__wrapped__(*args,**kwds)
    601     weak_wrapped_fn = weakref.ref(wrapped_fn)
    602 

~\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\framework\func_graph.py in wrapper(*args,**kwargs)
    971           except Exception as e:  # pylint:disable=broad-except
    972             if hasattr(e,"ag_error_metadata"):
--> 973               raise e.ag_error_metadata.to_exception(e)
    974             else:
    975               raise

ValueError:在用户代码中:

    C:\Users\peash\.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:806

train_function * 返回 step_function(self,iterator) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:796 step_function ** 输出 = model.distribute_strategy.run(run_step,args=(data,)) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:1211 跑步 返回 self._extended.call_for_each_replica(fn,args=args,kwargs=kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2585 call_for_each_replica 返回 self._call_for_each_replica(fn,kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\distribute\distribute_lib.py:2945 _call_for_each_replica 返回 fn(*args,**kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:789 运行步骤** 输出 = model.train_step(data) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\training.py:747 train_step y_pred = self(x,training=True) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\base_layer.py:985 致电 输出 = call_fn(输入,*args,**kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\functional.py:385 称呼 返回 self._run_internal_graph( C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\functional.py:508 _run_internal_graph 输出 = node.layer(*args,**kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\engine\base_layer.py:985 致电 输出 = call_fn(输入,*args,**kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\layers\merge.py:183 称呼 返回 self._merge_function(inputs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\layers\merge.py:522 _merge_function 返回 K.concatenate(inputs,axis=self.axis) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\util\dispatch.py​​:201 包装纸 返回目标(*args,**kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\keras\backend.py:2881 连接 return array_ops.concat([to_dense(x) for x in tensors],axis) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\util\dispatch.py​​:201 包装纸 返回目标(*args,**kwargs) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\ops\array_ops.py:1654 连接 返回 gen_array_ops.concat_v2(值=值,轴=轴,名称=名称) C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\ops\gen_array_ops.py:1220 concat_v2 _,_,_op,_outputs = _op_def_library._apply_op_helper( C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\framework\op_def_library.py:742 _apply_op_helper op = g._create_op_internal(op_type_name,输入,dtypes=None, C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\framework\func_graph.py:591 _create_op_internal return super(FuncGraph,self)._create_op_internal(#pylint: disable=protected-access C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\framework\ops.py:3477 _create_op_internal ret = 操作( C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\framework\ops.py:1974 初始化 self._c_op = _create_c_op(self._graph,node_def,输入, C:\Users\peash.conda\envs\tensorflow\lib\site-packages\tensorflow\python\framework\ops.py:1815 _create_c_op 引发 ValueError(str(e))

    ValueError: Dimension 1 in both shapes must be equal,but are 75 and 74. Shapes are [?,75,150] and [?,74,150]. for '{{node

functional_7/concatenate_13/concat}} = ConcatV2[N=2,T=DT_FLOAT,Tidx=DT_INT32](functional_7/dropout_8/dropout/Mul_1,功能_7/conv2d_93/Relu,功能_7/concatenate_13/concat/axis)' 输入形状: [?,150,512],[?,[] 和 计算的输入张量:input[2] = .

尝试重塑训练数据,但仍然遇到此问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-