【linux】ValueError: Graph disconnected: cannot obtain value for tensor

文章描述了一个开发者遇到的问题,即在服务器上运行的TensorFlow模型(使用Keras构建)出现Graphdisconnected错误,而该问题在本地环境中并不存在。开发者尝试了不同方法,包括调整代码和匹配本地与服务器的TensorFlow及Python版本。最终,通过将服务器上的Python环境更新到与本地相同的3.8版本,问题得到解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ValueError: Graph disconnected: cannot obtain value for tensor KerasTensor(type_spec=TensorSpec(shape=(None, 400, 20, 1), dtype=tf.float32, name='input_1'), name='input_1', description="created by layer 'input_1'") at layer "conv2d". The following previous layers were accessed without issue: []

背景:在本地完全可以跑通,在服务器上一直跳出来这个问题,已经两天了,还没解决

linux上显示有问题的代码如下:

    def build(self):
        'temporal_cnn'
        tem_cnn_input = Input(shape=(400, 20, 1))
        # layer1
        tem_cnn_conv1 = Conv2D(8, (64, 1), padding='same')(tem_cnn_input)
        tem_cnn_BN1 = BatchNormalization(axis=3, epsilon=1e-05, momentum=0.1)(tem_cnn_conv1)
        tem_cnn_BN11 = Activation('elu')(tem_cnn_BN1)
        tem_cnn_pool1 = MaxPooling2D(pool_size=(4, 1))(tem_cnn_BN11)
        # layer2
        tem_cnn_conv2 = Conv2D(16, (32, 1), padding='same')(tem_cnn_pool1)
        tem_cnn_BN2 = BatchNormalization(axis=3, epsilon=1e-05, momentum=0.1)(tem_cnn_conv2)
        tem_cnn_BN22 = Activation('elu')(tem_cnn_BN2)
        tem_cnn_pool2 = MaxPooling2D(pool_size=(2, 1))(tem_cnn_BN22)
        tem_cnn_output = Dropout(self.dropout_rate)(tem_cnn_pool2)

        temporal_cnn = Model(inputs=tem_cnn_input, outputs=tem_cnn_output, name='temporal_cnn')
        temporal_cnn.summary()

        'tem_transformer'
        trans_input = tf.reshape(tem_cnn_output, [-1, tem_cnn_output.shape[1], tem_cnn_output.shape[2] * tem_cnn_output.shape[3], 1])

        # attention_block = AttentionBlock(num_heads=self.num_heads, ff_dim=self.ff_dim, rate=self.rate)
        # attention = attention_block(trans_input)
        trans_output1 = MaxPooling2D(pool_size=(1, 4))(trans_input)

        trans_output = Dropout(0.5)(trans_output1)
        transformer = Model(inputs=trans_input, outputs=trans_output, name='tem_transformer')
        transformer.summary()

球球了,各种方法都试过了

(tensorflow和python版本在本地和服务器上设置的不同:

tensorflow本地:2.10.1,服务器:2.6.0;python本地3.8,服务器3.6.9)

目前准备先把这个问题搁置一下,先做其他的,有哪位大神看到的话一定要告诉我!!!

----------------------------------------------------分割线--------------------------------------------------------------

哈哈哈!!!我把本地的tensorflow和keras全都改成和服务器一样的了,但是本地的python还是3.8,出现了和服务器上一样的问题!

 下一步就是把服务器上的版本改了,我哭死

----------------------------------------------------分割线-------------------------------------------------------------------

改完了,把服务器上python环境换成了3.8,一下子就跑通了,跟代码真的没有关系!!困扰我两天的问题终于解决了!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值