zoukankan      html  css  js  c++  java
  • colab-tf2.x炼丹小技巧&bug锦集

    2020-07-23

    bug1:Calling read(nbytes) on source failed. Try engine='python'


    今天在用colab的时候跳出来一个

    意思大概就是我的colab没问题,但是他连不上我放在Google drive里面的文件了(其实就是数据集鸭,,毕竟 代码我们都是直接写在colab里面的)。。

    然后在处理数据集的时候就会报错:

    然后在处理数据集的时候就会报错tes) on source failed. Try engine='python'

    其实我们需要的也仅仅是GPU,所以,解决方法就是:

    直接把我们的数据集上传到colab里面就可以用了(像这样):

    然后直接把地址改成文件名就行了(毕竟已经在同一个目录下啦)

    df= pd.read_csv('train.csv') 

    2020-07-24

    薅羊毛也有技巧,colab会随机为免费用户提供4个炼丹炉,其中T4和Tesla-P100的算力最强。可以通过下面这个命令查询自己是哪个炼丹炉

    !nvidia-smi

    比如我现在用的就是:

    如果运算量很大而且随机到的炼丹炉很差的话,建议直接停掉,重新连接重新随机炼丹炉。

     

    比如我现在这个数据集有12000条数据,昨天随机到一个先对来说很差的,跑一个epoch需要2580+s(忘记存图了)

    今天用这个P100跑,就只要1300+s

    一倍的时间差距

     

    (另外我看到一个算力比较的 P100似乎比colab提供最次的K80计算速度快6.5倍)


    晚上又遇到好多个bug:

    ”您的会话因占满了所有可用 RAM 而导致崩溃。 查看运行时日志“

    左下角这个。。。就是我把colab的GPU的显存用光了。。

    解决方法:把batch_size缩小(卑微的已经缩小到32了)


    tips:查看当前句子的长度(没有分词之前,唔至少可以提供一下最小长度参考吧,特别是英语文本)(可以作为batch_size参考,唔,,前提是你的显存够大,哈哈哈哈哈哈哈哈哈嗝)

    df['text_len']=df['Description'].apply(lambda x : len(x.split(' ')))
    print(df['text_len'].describe())

    下面是常用的绘制图像的套路:

    #导入包
    import matplotlib.pyplot as plt
    import numpy as np
    
    #创建数据
    x = np.linspace(-5, 5, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    
    #创建figure窗口
    plt.figure(num=3, figsize=(8, 5))
    #画曲线1
    plt.plot(x, y1)
    #画曲线2
    plt.plot(x, y2, color='blue', linewidth=5.0, linestyle='--')
    #设置坐标轴范围
    plt.xlim((-5, 5))
    plt.ylim((-2, 2))
    #设置坐标轴名称
    plt.xlabel('Iteration')
    plt.ylabel('Accuracy')
    #设置坐标轴刻度
    my_x_ticks = np.arange(-5, 5, 0.5)
    my_y_ticks = np.arange(-2, 2, 0.3)
    plt.xticks(my_x_ticks)
    plt.yticks(my_y_ticks)
    
    #显示出所有设置
    plt.show()

    2020-07-29

    当我们要比较两个算法在同一个数据集上的效果的时候,我们就可能需要把第一个训练好的模型先存起来:

    https://www.tensorflow.org/api_docs/python/tf/saved_model/savewww.tensorflow.org

    就用

    tf.saved_model.save(
        obj, export_dir, signatures=None, options=None
    )

    这个函数就可以了


    2020-07-30

    在做embedding的时候:

    trunc_type="post"           #表示超过maxlen的部分 选择后面多的截断

    转载 https://zhuanlan.zhihu.com/p/163222953

  • 相关阅读:
    UCML破解
    UCML快速开发平台学习1-UCML环境安装
    window系统安装jdk,jre
    解决Android报错No resource found that matches the given name (at 'text' with value '@string/hello').
    es6小技巧整理
    如何将项目推到github上面
    如何将时间格式化
    uni-app 页面跳转的两种方法
    layui表单校验及监听复选框选中状态的坑
    使用nvm管理多个不同版本的nodeJS之安装成功nodeJs之后使用npm报错的问题
  • 原文地址:https://www.cnblogs.com/gaodi2345/p/14825593.html
Copyright © 2011-2022 走看看