Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何解决Keras layer.get_output_shape_at()抛出的异常“层从未被调用过,因此没有定义输出形状”?

如何解决Keras layer.get_output_shape_at()抛出的异常“层从未被调用过,因此没有定义输出形状”?
EN

Stack Overflow用户
提问于 2020-10-30 11:11:17
回答 2查看 1.3K关注 0票数 0

我尝试在kaggle上重复一些代码。我使用tensorflow 2.3.1,下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
input_shape = (size, size, 3)
in_lay = tf.keras.layers.Input(shape = input_shape)

in_lay = tf.keras.layers.Input(shape = input_shape)
base_pretrained_model = tf.keras.applications.VGG16(input_shape = input_shape,
include_top = False, weights = 'imagenet')
base_pretrained_model.trainable = False
pt_depth = base_pretrained_model.get_output_shape_at(0)[-1]
pt_features = base_pretrained_model(in_lay)
bn_features = tf.keras.layers.BatchNormalization()(pt_features)
……

我在行“pt_depth = base_pretrained_model.get_output_shape_at(0)-1".”处得到错误错误是:

代码语言:javascript
运行
AI代码解释
复制
pt_depth = base_pretrained_model.get_output_shape_at(0)[-1]
File "/home/xxxx/anaconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py", line 2030, in get_output_shape_at
'output shape')
File "/home/xxxx/anaconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/keras/engine/base_layer.py", line 2603, in _get_node_attribute_at_index
'and thus has no defined ' + attr_name + '.')
RuntimeError: The layer has never been called and thus has no defined output shape.

原因是什么?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-30 12:00:24

请尝试此方法:

代码语言:javascript
运行
AI代码解释
复制
pt_depth = model.layers[0].compute_output_shape(input_shape)
票数 2
EN

Stack Overflow用户

发布于 2021-04-22 09:56:48

我尝试了Andrey的修复,但在代码中的另一个步骤失败了。所以它对我不起作用。

我从这个页面得到了解决方案:https://github.com/tensorflow/tensorflow/issues/44857。在得到outshape之前,我们需要使用输入调用模型,如下所示:

代码语言:javascript
运行
AI代码解释
复制
in_lay = Input(t_x.shape[1:])
base_pretrained_model = VGG16(input_shape =  t_x.shape[1:], include_top = False, weights = 'imagenet')
base_pretrained_model.trainable = False
pt_features = base_pretrained_model(in_lay)
pt_depth = base_pretrained_model.get_output_shape_at(0)[-1]

然后我的程序就可以继续了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64607234

复制
相关文章
CDO学习1 CDO简介[通俗易懂]
http://www.ceda.ac.uk/static/media/uploads/ncas-reading-2015/cdo.pdf
全栈程序员站长
2022/09/16
2.1K0
Python如何将GrADs常用文件转换为NetCDF格式?
测试数据分享 链接:https://pan.baidu.com/s/1mj1-YpvQN414crNz32f8GA 提取码:wmfr
气象学家
2022/01/18
1.9K0
Python如何将GrADs常用文件转换为NetCDF格式?
Python如何将GrADs常用文件转换为NetCDF格式?
首先需要确保xgrads库的安装: pip install xgrads Install from github 或者 git clone https://github.com/miniufo/xgrads.git cd xgrads python setup.py install 链接https://github.com/miniufo/xgrads , 有提供示例ctl和dat文件,下面我们是使用的ctl和grd文件转换的,方法类似: #import sys #sys.path.append('/home/gavin/miniconda3/envs/atmpy/lib/python3.8/site-packages') #sys.path from xgrads import CtlDescriptor, open_CtlDataset ds = open_CtlDataset('lst.ctl') ctl = CtlDescriptor(file='lst.ctl') ds.attrs['pdef' ] = 'None' ds.to_netcdf('lst.nc') data = ds.ro1 data.where(data!=ctl.undef).plot(figsize=(9,5), cmap='jet') 以上需要注意两点: 1.如果在jupyter-lab中无法加载xgrads需要手动添加其路径,使用到的是:import sys 2. xgrads存在bug,如果不添加语句ds.attrs['pdef' ] = 'None'会一直报错,无法生成nc文件!
郭好奇同学
2021/08/26
2.8K0
Python如何将GrADs常用文件转换为NetCDF格式?
Word 技术篇-段落的前后间距单位磅改为行,行改为磅
很多时候,比如我们写论文,word的格式是有严格要求的,我们要一丝不苟的按照要求来。因为,这是一种规范,也是是一种礼仪。
小蓝枣
2020/09/23
1.8K0
Word文档段落的前后间距单位磅改为行,行改为磅方法演示
很多时候,比如我们写论文,word 的格式是有严格要求的,我们要一丝不苟的按照要求来。因为,这是一种规范,也是是一种礼仪。
小蓝枣
2023/05/27
1.8K0
Word文档段落的前后间距单位磅改为行,行改为磅方法演示
在Python中绘图,更丰富,更专业
Excel使绘制图形变得非常容易。Python也是如此!这里,我们将快速熟悉如何在Python中绘制图形。
fanjy
2022/03/07
1.8K0
在Python中绘图,更丰富,更专业
PowerShell中theFuck插件PoShFuck将wtf搜索引擎从Google改为Baidu或者Bing
有一个很好玩的插件 PoShFuck ,安装后,输入 wtf ,就可以自动帮我们打开网页,用谷歌搜索刚刚报错的语句。但是谷歌引擎‘不好用’,于是我将其改为了 BAIDU ,如下图。我将阐述修改方法。BING 也是可以的。
Piper蛋窝
2020/11/19
8810
PowerShell中theFuck插件PoShFuck将wtf搜索引擎从Google改为Baidu或者Bing
如何将生产环境的字段类型从INT修改为BIGINT
改变数据类型是一个看起来很简单的事情,但是如果表非常大或者有最小停机时间的要求,又该如何处理那?这里我提供一个思路来解决这个问题。
全栈程序员站长
2021/11/29
3.1K0
如何将生产环境的字段类型从INT修改为BIGINT
如何使用Python创建NetCDF文件
之前介绍过如何使用Python处理NetCDF格式文件,这次介绍一下如何创建NetCDF文件。
MeteoAI
2019/07/24
14.8K1
如何将生产环境的字段类型从INT修改为BIGINT
介绍 改变数据类型是一个看起来很简单的事情,但是如果表非常大或者有最小停机时间的要求,又该如何处理那?这里我提供一个思路来解决这个问题。 背景 在一个常规SQL Server heath检查中,使用sp_blitz,我们最大的生产表之一引发了令人担忧的警报。保存客户订单信息的表的ID列是一个INT datatype,很快就将达到最大值。 这个表大约有500GB,有超过9亿行。根据在该表上每天的平均插入数,我估计未来八个月后,在这张表上的插入将会溢出。这是一个订单输入表,由于客户的活动,需要24小时的插入。一
用户1217611
2018/03/29
5.1K0
如何将生产环境的字段类型从INT修改为BIGINT
使用Python处理NetCDF格式文件
NetCDF(Network Common Data Form)是一种科学二进制数据格式,由UCAR负责开发和维护netCDF软件,主要用于存储多维科学数据。在地球科学领域使用较为广泛,大多数数值模式,卫星,雷达等数据格式通常为NetCDF格式。
MeteoAI
2019/07/22
7.7K1
将 UWP 中 CommandBar 的展开方向改为向下展开
发布于 2018-10-05 19:37 更新于 2018-10-16 08:57
walterlv
2020/02/10
1.7K0
基于netcdf库的nc文件读写
因为近期涉及到预报系统部署和后处理开发的任务,为了和预报模式更好的兼容,一些数据处理工作就交给Fortran来做了。把Fortran和C的NetCDF库API部分内容做了一个整理。
bugsuse
2020/04/21
4.6K0
Python将文件大写字母的格式后缀改为小写
  本文介绍基于Python语言,基于一个大文件夹,遍历其中的多个子文件夹,对于每一个子文件夹中的大量文件,批量将其文件的名称或后缀名中的字母由大写修改为小写的方法。
疯狂学习GIS
2023/10/24
4100
Python将文件大写字母的格式后缀改为小写
从xarray走向netCDF处理(四):合并与计算
前面有关xarray已经讲了3期了,介绍了数据索引,数据结构还有插值和掩膜。今天这是最后一期介绍用xarray处理nc数据了,打算聊一下如何做数据合并与计算。
MeteoAI
2019/07/22
12.1K3
python 将网卡改为嗅探功能
def pktPrint(pkt): if pkt.haslayer(Dot11Beacon): print '[+] Detected 802.11 Beacon Frame' elif pkt.haslayer(Dot11ProbeReq): print '[+] Detected 802.11 Probe Request Frame' elif pkt.haslayer(TCP): print '[+] Detected a TCP Packet' elif pkt.haslayer(DNS): print '[+] Detected a DNS Packet'
用户5760343
2019/07/31
1.2K0
python 将网卡改为嗅探功能
openwrt将LAN口改为WAN方法
牢骚 折腾了好几个好几个小时,终于搞好了。原因就是因为固件里面的端口序号和实际路由器后面的序号不一致,导致我的设置和物理连接对不上,这是个巨坑。 折腾需求 PS:我家里面有两条宽带,一条中国联通50M,一条中国移动50M。 折腾多WAN口(就是把LAN口改为WAN口)的主要目的是我想是默认上网走联通,部分IP(什么IP你懂的)通过静态路由走移动出去,因为移动的国际出口在中国香港,出国速度相对来说好一些。 折腾方法 1.依次点开-网络-交换机 2.首先要启用VLan,可
行 者
2018/03/26
16.7K0
openwrt将LAN口改为WAN方法
nestjs将底层由express改为fastify
nestjs默认使用的http框架为express,代码如下:// 输入代码内容import { NestFactory } from '@nestjs/core';import { AppModule } from './app.module';async function bootstrap() { const app = await NestFactory.create(AppModule); await app.listen(3000);}bootstrap();在这里将express替换为fa
挥刀北上
2023/05/24
8040
nestjs将底层由express改为fastify
从xarray走向netCDF处理(二):数据索引
xarray专题再次开讲,错过第一部分的可以先去补个课从xarray走向netCDF处理(一):数据结构及数据读取。 今天要介绍的就是xarray的索引功能,通过索引你可以对数据进行切片,从整体中提取你所关注的区域、高度或者时间。
自学气象人
2022/11/02
1.8K0
从xarray走向netCDF处理(二):数据索引
pip和pip3的区别_linux将文件改为只读
前言 装完python3后发现库里面既有pip也有pip3,不知道它们的区别,因此特意去了解了一下。
全栈程序员站长
2022/09/20
2.1K0
pip和pip3的区别_linux将文件改为只读

相似问题

容器中的左、右边距-10 in

25

不使用position:absolute删除上/左/右边距

10

边距在Chrome和Firefox上的左/右边距不同

10

CSS左对齐浮动,但限制在右边距。

32

如何理解同样有左/右边距的固定div?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档