You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Colab中用TensorFlow运行Uniprot ProtNLM报错:run_inference未定义

修复ProtNLM Colab笔记本中run_inference未定义的NameError问题

1. 补全缺失的run_inference函数定义

官方Colab试用笔记本未包含该自定义推理函数的实现,需手动添加以下适配TensorFlow 2.x版本的代码到笔记本中(基于ProtNLM官方推理逻辑):

import tensorflow as tf
from tensorflow.keras.models import load_model

def run_inference(protein_sequences, model_path, max_seq_len=1024):
    # 氨基酸映射表(匹配ProtNLM的预训练输入规范)
    aa_vocab = {'A':1, 'C':2, 'D':3, 'E':4, 'F':5, 'G':6, 'H':7, 'I':8, 'K':9, 'L':10,
                'M':11, 'N':12, 'P':13, 'Q':14, 'R':15, 'S':16, 'T':17, 'V':18, 'W':19, 'Y':20,
                '<PAD>':0, '<UNK>':21}
    
    def preprocess_sequence(seq):
        # 截断或填充序列至模型要求的最大长度
        truncated_seq = seq[:max_seq_len]
        padded_seq = truncated_seq.ljust(max_seq_len, '<PAD>')
        # 转换为模型可识别的索引序列
        return tf.convert_to_tensor([aa_vocab.get(residue, aa_vocab['<UNK>']) for residue in padded_seq], dtype=tf.int32)
    
    # 加载预训练模型
    model = load_model(model_path, compile=False)
    
    # 批量处理输入序列
    processed_inputs = tf.stack([preprocess_sequence(seq) for seq in protein_sequences])
    # 执行推理并返回结果
    return model.predict(processed_inputs)

2. 适配TensorFlow版本兼容问题

  • 若加载的是基于TensorFlow 1.x训练的旧版ProtNLM模型,需在模型加载时添加兼容参数:
    model = tf.keras.models.load_model(model_path, compile=False, custom_objects={'tf': tf.compat.v1})
    
  • 若遇到 eager execution 相关报错,可在函数开头添加:
    tf.compat.v1.disable_eager_execution()
    

3. 正确调用推理函数

在原代码的推理调用处,传入合法参数即可:

# 示例:批量处理蛋白序列
protein_seqs = ["MAKGEELFTGVVPILVELDGDVNGHKFSVRGEGEGDATNGKLTLKFICTTGKLPVPWPTLVTTFSYGVQCFSRYPDHMKQHDFFKSAMPEGYVQERTIFFKDDGNYKTRAEVKFEGDTLVNRIELKGIDFKEDGNILGHKLEYNYNSHNVYIMADKQKNGIKVNFKIRHNIEDGSVQLADHYQQNTPIGDGPVLLPDNHYLSTQSALSKDPNEKRDHMVLLEFVTAAGITHGMDELYK", "MSEGEQLAK"]
model_path = "/content/protnlm_pretrained_model.h5"
protein_descriptors = run_inference(protein_seqs, model_path)

内容的提问来源于stack exchange,提问作者lunchbox7804

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:23:21