美文网首页
ai-earth 时序数据-docker提交

ai-earth 时序数据-docker提交

作者: cornbig | 来源:发表于2021-02-22 00:36 被阅读0次

    参考教程
    https://github.com/xcqu2009/WeatherOceanForecasts/
    文件目录

    docker打包镜像.png
    Dockerfile 文件
    Dockerfile.png
    requirements.txt
    numpy
    tensorflow==2.2.0
    

    mlp_predict.py

    import tensorflow as tf
    import tensorflow.keras.backend as K
    from tensorflow.keras.layers import *
    from tensorflow.keras.models import *
    from tensorflow.keras.optimizers import *
    from tensorflow.keras.callbacks import *
    from tensorflow.keras.layers import Input 
    import numpy as np
    import os
    import zipfile
    
    def RMSE(y_true, y_pred):
        return tf.sqrt(tf.reduce_mean(tf.square(y_true - y_pred)))
    
    def build_model():  
        inp    = Input(shape=(12,24,72,4))  
        
        x_4    = Dense(1, activation='relu')(inp)   
        x_3    = Dense(1, activation='relu')(tf.reshape(x_4,[-1,12,24,72]))
        x_2    = Dense(1, activation='relu')(tf.reshape(x_3,[-1,12,24]))
        x_1    = Dense(1, activation='relu')(tf.reshape(x_2,[-1,12]))
         
        x = Dense(64, activation='relu')(x_1)  
        x = Dropout(0.25)(x) 
        x = Dense(32, activation='relu')(x)   
        x = Dropout(0.25)(x)  
        output = Dense(24, activation='linear')(x)   
        model  = Model(inputs=inp, outputs=output)
    
        adam = tf.optimizers.Adam(lr=1e-3,beta_1=0.99,beta_2 = 0.99) 
        model.compile(optimizer=adam, loss=RMSE)
    
        return model 
    
    model = build_model()
    model.load_weights('./user_data/model_data/model_mlp_baseline.h5')
    
    test_path = './tcdata/enso_round1_test_20210201/'
    
    ### 1. 测试数据读取
    files = os.listdir(test_path)
    test_feas_dict = {}
    for file in files:
        test_feas_dict[file] = np.load(test_path + file)
        
    ### 2. 结果预测
    test_predicts_dict = {}
    for file_name,val in test_feas_dict.items():
        test_predicts_dict[file_name] = model.predict(val).reshape(-1,)
    #     test_predicts_dict[file_name] = model.predict(val.reshape([-1,12])[0,:])
    
    ### 3.存储预测结果
    for file_name,val in test_predicts_dict.items(): 
        np.save('./result/' + file_name,val)
    
    #打包目录为zip文件(未压缩)
    def make_zip(source_dir='./result/', output_filename = 'result.zip'):
        zipf = zipfile.ZipFile(output_filename, 'w')
        pre_len = len(os.path.dirname(source_dir))
        source_dirs = os.walk(source_dir)
        print(source_dirs)
        for parent, dirnames, filenames in source_dirs:
            print(parent, dirnames)
            for filename in filenames:
                if '.npy' not in filename:
                    continue
                pathfile = os.path.join(parent, filename)
                arcname = pathfile[pre_len:].strip(os.path.sep)   #相对路径
                zipf.write(pathfile, arcname)
        zipf.close()
    make_zip()
    

    run.sh文件

    #!/bin/sh
    CURDIR="`dirname $0`" #获取此脚本所在目录
    echo $CURDIR
    cd $CURDIR #切换到该脚本所在目录
    python /code/mlp_predict.py
    

    docker提交镜像

    1.镜像登陆

    docker login registry.cn-shenzhen.aliyuncs.com
    
    1. build 运行命令 【跑Dockerfile文件】
    docker build -t registry.cn-shenzhen.aliyuncs.com/corn_ai/corn_aiearth_submit:1.2 .
    
    1. push
    docker push registry.cn-shenzhen.aliyuncs.com/corn_ai/corn_aiearth_submit:1.2
    

    运行结果

    成绩.png

    相关文章

      网友评论

          本文标题:ai-earth 时序数据-docker提交

          本文链接:https://www.haomeiwen.com/subject/aracfltx.html