精华内容
下载资源
问答
  • JVM的参数详解

    万次阅读 2016-01-21 09:35:32
    12年毕业到先在处理第一年外这几年纯属于打酱油,当初自学Java然后就出来找工作了,还有第一家面试就通过了挺幸运 ...相对而已JVM很多参数,但对于一般开发人员执行知道和堆栈大小,GC、远程调试的参数


    12年毕业到先在处理第一年外这几年纯属于打酱油,当初自学Java然后就出来找工作了,还有第一家面试就通过了挺幸运的
    但之后的这段时间一直是处于吃老本的状态。最近心情真的很不好,各种黄老邪!一直处于堕落的状态,明知不可为而为之!
    哎 想想就心碎!不跑题了,说了好撸码三十年,这才几年!
    今天就整理下JVM的参数!相对而已JVM有很多参数,但对于一般开发人员执行知道和堆栈大小,GC、远程调试的参数即可。

    JVM Parameters

    首先需要说明的是JVM的参数形式:

    • -X 开头的参数都是非标准的参数(不是所有的JVM都实现了)
    • -XX 都是不稳定的并且不推荐在生产环境中使用
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    * 布尔类型的参数
    	格式	-XX:+<option>   打开/-XX:-<option>   关闭
        例如:	-XX:PrintGCDetails  打开GC信息(调优和定位内存回收问题经常使用)
    * 数字型参数
    	格式	-XX:<option>=<number>
        例如	-XX:NewRatio=2
    * 字符型参数
    	格式	-XX:<option>=<string>
        例如	-XX:HeapDumpPath=./java_pid.hprof
    

    当然是人都不可能时时记住这些命令和选项,此时可以使用java -help(列出所有的标准选项)java -X(大写列出所有的非标准选项)
    例如下面是我机器的选项:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    
    $ java -help
    Usage: java [-options] class [args...]
               (to execute a class)
       or  java [-options] -jar jarfile [args...]
               (to execute a jar file)
    where options include:
        -d32	  use a 32-bit data model if available
        -d64	  use a 64-bit data model if available
        -server	  to select the "server" VM
                      The default VM is server,
                      because you are running on a server-class machine.
    
    
        -cp <class search path of directories and zip/jar files>
        -classpath <class search path of directories and zip/jar files>
                      A : separated list of directories, JAR archives,
                      and ZIP archives to search for class files.
        -D<name>=<value>
                      set a system property
        -verbose:[class|gc|jni]
                      enable verbose output
        -version      print product version and exit
        -version:<value>
                      require the specified version to run
        -showversion  print product version and continue
        -jre-restrict-search | -no-jre-restrict-search
                      include/exclude user private JREs in the version search
        -? -help      print this help message
        -X            print help on non-standard options
        -ea[:<packagename>...|:<classname>]
        -enableassertions[:<packagename>...|:<classname>]
                      enable assertions with specified granularity
        -da[:<packagename>...|:<classname>]
        -disableassertions[:<packagename>...|:<classname>]
                      disable assertions with specified granularity
        -esa | -enablesystemassertions
                      enable system assertions
        -dsa | -disablesystemassertions
                      disable system assertions
        -agentlib:<libname>[=<options>]
                      load native agent library <libname>, e.g. -agentlib:hprof
                      see also, -agentlib:jdwp=help and -agentlib:hprof=help
        -agentpath:<pathname>[=<options>]
                      load native agent library by full pathname
        -javaagent:<jarpath>[=<options>]
                      load Java programming language agent, see java.lang.instrument
        -splash:<imagepath>
                      show splash screen with specified image
    See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
    $ java -X
        -Xmixed           mixed mode execution (default)
        -Xint             interpreted mode execution only
        -Xbootclasspath:<directories and zip/jar files separated by :>
                          set search path for bootstrap classes and resources
        -Xbootclasspath/a:<directories and zip/jar files separated by :>
                          append to end of bootstrap class path
        -Xbootclasspath/p:<directories and zip/jar files separated by :>
                          prepend in front of bootstrap class path
        -Xdiag            show additional diagnostic messages
        -Xnoclassgc       disable class garbage collection
        -Xincgc           enable incremental garbage collection
        -Xloggc:<file>    log GC status to a file with time stamps
        -Xbatch           disable background compilation
        -Xms<size>        set initial Java heap size
        -Xmx<size>        set maximum Java heap size
        -Xss<size>        set java thread stack size
        -Xprof            output cpu profiling data
        -Xfuture          enable strictest checks, anticipating future default
        -Xrs              reduce use of OS signals by Java/VM (see documentation)
        -Xcheck:jni       perform additional checks for JNI functions
        -Xshare:off       do not attempt to use shared class data
        -Xshare:auto      use shared class data if possible (default)
        -Xshare:on        require using shared class data, otherwise fail.
        -XshowSettings    show all settings and continue
        -XshowSettings:all
                          show all settings and continue
        -XshowSettings:vm show all vm related settings and continue
        -XshowSettings:properties
                          show all property settings and continue
        -XshowSettings:locale
                          show all locale related settings and continue
    
    The -X options are non-standard and subject to change without notice.
    

    如果在应用程序中查询当前应用使用的参数可以使用例如如下的代码进行查询

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    package JDK.JVM;
    
    import com.opslab.StringUtil;
    
    import java.lang.management.ManagementFactory;
    import java.util.List;
    
    public class JvmParamerters {
        public static void main(String[] args){
            List<String> paramters = ManagementFactory.getRuntimeMXBean().getInputArguments();
            System.out.println(StringUtil.join(paramters,":"));
        }
    }
    

    下面是根据用途进行了一些分类

    三个个不显眼但及其有用的参数(知道的举手)

    -XX:+PrintCommandLineFlags :打印出JVM初始化完毕后所有跟初始化的默认之不同的参数及他们的值
    -XX:+PrintFlagsFinal :显示所有可设置的参数及”参数处理”后的默认值
    可是查看不同版本默认值,以及是否设置成功.输出的信息中”=”表示使用的是初始默认值,
    而”:=”表示使用的不是初始默认值
    -XX:+PrintFlagsInitial :在”参数处理”之前所有可设置的参数及它们的值,然后直接退出程序
    例如不起用这个俩个参数时启动信息如下:

    1
    2
    
    $ java -XX:+PrintGCDetails -Xloggc:./gc.log JDK.JVM.JvmParamerters
    app starting...
    

    启动以上俩个参数后:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    $ java -XX:+PrintGCDetails -Xloggc:./gc.log -XX:+PrintCommandLineFlags -XX:+PrintFlagsFinal \
      JDK.JVM.JvmParamerters
    -XX:InitialHeapSize=130056064 -XX:MaxHeapSize=2080897024 -XX:+PrintCommandLineFlags 
    -XX:+PrintFlagsFinal -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps 
    -XX:+UseCompressedOops -XX:+UseParallelGC 
    [Global flags]
    ...-javaagent:jarpath[=options]
    	uintx InitialHeapSize                          := 130056064       {product}           
        uintx InitialRAMFraction                        = 64              {product}           
        uintx InitialSurvivorRatio                      = 8               {product}           
         intx InitialTenuringThreshold                  = 7               {product}           
        uintx InitiatingHeapOccupancyPercent            = 45              {product}           
         bool Inline                                    = true            {product}           
    ... 
    	 bool PrintGCDetails                           := true            {manageable}        
         bool PrintGCTaskTimeStamps                     = false           {product}           
         bool PrintGCTimeStamps                        := true            {manageable}  
    ...
    

    几个开发人员会用到的标准参数

    -client :设置JVM使用client模式,特点启动较快(神机不明显(I5/8G/SSD))
    -server :设置JVM使用server模式。64位JDK默认启动该模式
    -agentlib:libname[=options] :用于加载本地的lib
    -agentlib:hprof :用于获取JVM的运行情况
    -agentpath:pathnamep[=options] :加载制定路径的本地库
    -Dproperty=value :设置系统属性名/值对
    -jar :制定以jar包的形式执行一个应用程序
    -javaagent:jarpath[=options] :实现premain方法在main方法前执行可以利用该方式玩一个JVM层面的hook很有意思的东西
    -verbose:jni :输出native方法的调用情况玩JNI必备技能
    例如:

    1
    
    -agentlib:jprofilerti=port=8849 -Xbootclasspath/a:/usr/local/jprofiler5/bin/agent.jar
    

    跟Java对战大小相关的JVM内存参数

    -Xms :设置Java堆栈的初始化大小
    -Xmx :设置最大的java堆大小
    -Xmn :设置Young区大小
    -Xss :设置java线程堆栈大小
    -XX:PermSize and MaxPermSize :设置持久带的大小
    -XX:NewRatio :设置年轻代和老年代的比值
    -XX:NewSize :设置年轻代的大小
    -XX:SurvivorRation=n :设置年轻代中E去与俩个S去的比值

    1
    
    $ java -Xmx128 -Xms64 -Xmn32m -Xss16m Main
    

    打印垃圾回收器信息和设置垃圾回收器(串行、并行、并发等行为的收集器)

    -verbose:gc :记录GC运行以及运行时间,一般用来查看GC是否有瓶颈
    -XX:+PrintGCDetails :记录GC运行时的详细数据信息,包括新生占用的内存大小及消耗时间
    -XX:-PrintGCTimeStamps :打印收集的时间戳
    -XX:+UseParallelGC :使用并行垃圾收集器
    -XX:-UseConcMarkSweepGC :使用并发标志扫描收集器
    -XX:-UseSerialGC :使用串行垃圾收集器
    -Xloggc:filename :设置GC记录的文件
    -XX:+UseGCLogFileRotation :启用GC日志文件的自动转储
    -XX:GCLogFileSize=1M :控制GC日志文件的大小

    调试参数

    -Xdebug
    -Xnoagent
    -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
    -XX:HeapDumpPath=./java_pid.hprof :Path to directory or file name for heap dump.
    -XX:-PrintConcurrentLocks :Print java.util.concurrent locks in Ctrl-Break thread dump.
    -XX:-PrintCommandLineFlags :Print flags that appeared on the command line.

    关于性能

    -Xprof
    -Xrunhprof

    类加载和跟踪类加载和卸载的信息

    Xbootclasspath :指定需要加载,但不想通过校验类路径。
    JVM会对所有的类在加载前进行校验并为每个类通过一个int数值来应用
    -XX:+TraceClassLoading :跟踪类加载的信息(诊断内存泄露很有用)
    -XX:+TraceClassUnloading :跟踪类卸载的信息(诊断内存泄露很有用)



    展开全文
  • formatter (value,row,index){} 参数的含义 formatter 属于列参数,表示对于当前列的数据进行格式化操作,它是一个函数,三个参数,分别是value,row,index value:表示当前单元格中的值 row:表示当前行 index...

    formatter (value,row,index){} 参数的含义

    formatter 属于列参数,表示对于当前列的数据进行格式化操作,它是一个函数,有三个参数,分别是value,row,index
    value:表示当前单元格中的值
    row:表示当前行
    index:表示当前行的下标
    可以使用return返回想要的数据显示在单元格中
    在element 中 el-table 中使用:
    <el-table-column label="接通状态" :show-overflow-tooltip="true" prop="answerStatus" align="center" :formatter="(row) => $filter.dictConvert(row.answerStatus,'AnswerStatus')"></el-table-column>
    
    展开全文
  • 今天完成了获取预约功能Controller、Service、Dao层代码编写...如果输入参数并不属于数据库字段,我需要新建一个Entity来封装参数,同时该Entity应该继承另一个对应数据库表Entity. 2.在业务逻辑方面一个...

    今天完成了获取预约功能的Controller、Service、Dao层代码的编写,其中我遇到了两个问题,现总结如下:

     1.因为项目是前后端分离的,所以我在Dao层访问数据库的时候应该使用的是Entity作为输入参数,访问数据库,而不是Dto。如果输入参数并不属于数据库字段,我需要新建一个Entity来封装参数,同时该Entity应该继承另一个对应的数据库表的Entity.

     2.在业务逻辑方面有一个分组的逻辑非常不错,值得借鉴:

    //获取预约状态(指定时间范围的预约状态<以日期分组>)
    public AppoimentResponseDto getappoimentstatuslist(AppoimentRequestDto ard) throws Exception {
        int storeid=DataUtil.getCurrent().getStoreid();
        HcDmsAppointmentOrderStartToEnd starttoend=new HcDmsAppointmentOrderStartToEnd();
        starttoend.setStartdate(ard.getStartdate());
        starttoend.setEnddate(ard.getEnddate());
        //先查出指定时间范围内的所有预约状态记录
        List<HcDmsAppointmentOrder> hdaolist = dmsAppointmentDao.getappoimentstatuslist(starttoend);
    
        List<AppoimentlistResponseDto> list = new ArrayList<>();
        for (HcDmsAppointmentOrder hcDmsAppointmentOrder : hdaolist) {
            AppoimentlistResponseDto appoimentlistResponseDto = null;
            String appoimentdate = hcDmsAppointmentOrder.getAodate();   //预约时间
            appoimentdate = appoimentdate.substring(0, 8);      //预约日期
            for (AppoimentlistResponseDto value : list) {
                if (value.getDate().equals(appoimentdate)) {   //判断日期是否匹配
                    appoimentlistResponseDto = value;     //切换日期对应的对象
                }
            }
            if (appoimentlistResponseDto == null) {
                appoimentlistResponseDto = new AppoimentlistResponseDto();
                appoimentlistResponseDto.setDate(appoimentdate);   //设置日期
                list.add(appoimentlistResponseDto);
            }
            AppoimentdetailResponseDto dto = new AppoimentdetailResponseDto();
            dto.setAoid(hcDmsAppointmentOrder.getAoid());
            dto.setAotype(hcDmsAppointmentOrder.getAotype());
            dto.setAostoreid(storeid);
            dto.setAoorderno(hcDmsAppointmentOrder.getAoorderno());
            dto.setAovin(hcDmsAppointmentOrder.getAovin());
            dto.setAocarplate(hcDmsAppointmentOrder.getAocarplate());
            dto.setAodate(hcDmsAppointmentOrder.getAodate());
    
            appoimentlistResponseDto.getDetaillist().add(dto);
    
        }
        AppoimentResponseDto responseDto = new AppoimentResponseDto();
        responseDto.setList(list);
        return responseDto;
    }

    这里的业务逻辑并没有通过if匹配日期来分组,而是通过了切换appoimentlistResponseDto对象的方式。

    具体的原理是:

        首先查出指定时间范围内的所有预约状态记录。

        然后通过遍历该记录集合,将数据封装到List<AppoimentlistResponseDto>中去,AppoimentlistResponseDto中有两个属性,一个是日期字符串String date,另一个是对应该日期的预约状态记录的集合。这个集合的泛型是AppoimentdetailResponseDto 。

        创建一个AppoimentdetailResponseDto 对象,在当前循环中先将处了预约时间之外的字段封装进去。

        添加一个判断,判断如果AppoimentdetailResponseDto 是一个新的对象的话就封装当前预约状态记录的预约时间给它,并和date属性一起添加到List<AppoimentlistResponseDto>中去

        如果AppoimentlistResponseDto集合中已经有了该date日期的AppoimentlistResponseDto对象,就将它取出来,那么最后一句appoimentlistResponseDto.getDetaillist().add(dto)就可以将封装好的AppoimentdetailResponseDto 对象添加到该AppoimentlistResponseDto对象中。

    注意:该分组方法的核心思想是切换封装对象。

    --------------------------------------------------------

    2018/6/15

    今天做二手车项目时,需要取出uc_common_value表中的数据,并根据大分类名分类,表格如下:


    取出数据之后需要分组,我又使用了之前的写法,代码如下:

    /**
     * @User zy
     * @Description 查询车辆登记模块中下拉列表的值
     * @return
     */
    public UcCommonValueList getList() {
        List<UcCommonValueDto> list=transferDao.getList();  //所有常用值
        UcCommonValueList ucCommonValueLists=new UcCommonValueList();
        List<UcCommonValueListDto> ucCommonValueListDtos=new ArrayList<>();
        //按照大分类名分类
        for(UcCommonValueDto dto:list){
            UcCommonValueListDto ucCommonValueListDto=null;
    
            for(UcCommonValueListDto valueListDto:ucCommonValueListDtos){
                if(valueListDto.getCvType().equals(dto.getCvType())){
                    ucCommonValueListDto=valueListDto;
                }
    
            }
            if(ucCommonValueListDto==null){
                ucCommonValueListDto=new UcCommonValueListDto();
                ucCommonValueListDto.setCvType(dto.getCvType());
                ucCommonValueListDtos.add(ucCommonValueListDto);
            }
    
            ucCommonValueListDto.getUcCommonValueDtoList().add(dto);
        }
    
        ucCommonValueLists.setUcCommonValueListDtoList(ucCommonValueListDtos);
        return ucCommonValueLists;
    }
    注意:测试时我遇到了
    ucCommonValueListDto.getUcCommonValueDtoList()
    ucCommonValueLists.setUcCommonValueListDtoList(ucCommonValueListDtos);

       这两处报空指针的错误,原因是我在对应的Bean中没有初始化List。



    展开全文
  • 此处属于我个人理解,可能不正确地方欢迎大家指正。Cell说到LSTM当然先来一张cell图了:LSTM结构图图中看起来是三个cell,其实是一个cell在不同时刻上拼接,也就是说其实是一个cell在不同时刻的状态。我们就...

    最近做一个关于用电负荷预测的项目,想用循环神经网络试一下,具有时间特性的数据预测当然非LSTM莫属了啦,但是感觉自己对LSTM的输入和输出不是很明白,就学习顺便整理一下吧。

    此处属于我个人理解,可能有不正确的地方欢迎大家指正。

    Cell

    说到LSTM当然先来一张cell的图了:

    LSTM结构图

    图中看起来是三个cell,其实是一个cell在不同时刻上的拼接,也就是说其实是一个cell在不同时刻的状态。我们就以中间那个cell为例进行说明吧。

    其中,四个黄色的小矩形就是普通神经网络的隐藏层结构,其中第一、二和四的激活函数是sigmoid,第三个的激活函数是tanh。t时刻的输入X和t-1时刻的输出h(t-1)进行拼接,然后输入cell中,其实可以这样理解,我们的输入X(t)分别feed进了四个小黄矩形中,每个小黄矩形中进行的运算和正常的神经网络的计算一样(矩阵乘法),有关记忆的部分完全由各种门结构来控制(就是0和1),同时在输入时不仅仅有原始的数据集,同时还加入了上一个数据的输出结果,也就是h(t-1),那么讲来LSTM和正常的神经网络类似,只是在输入和输出上加入了一点东西。cell中可以大体分为两条横线,上面的横线用来控制长时记忆,下面的横线用来控制短时记忆。关于LSTM我通过参考画了一张图,如下:

    image.png

    输入和输出

    输入

    下面我们就来说说输入问题,在Keras中,LSTM的输入shape=(samples, time_steps, input_dim),其中samples表示样本数量,time_steps表示时间步长,input_dim表示每一个时间步上的维度。我举一个例子吧,现在有一个数据集有四个属性(A,B, C, D),我们希望的预测标签式D,假设这里的样本数量为N。如果时间步长为1,那么此时的输入shape=(N, 1, 4),具体的数据是这样的[A(t-1), B(t-1), C(t-1), D(t-1)](此处表示一个数据样本),样本标签为[D(t)];如果时间步长为2,那么此时的输入shape=(N, 2, 4),具体的数据是[[A(t-2), B(t-2), C(t-2), D(t-2)], [A(t-1), B(t-1), C(t-1), D(t-1)]](此处仍表示一个样本数据)。

    输出

    关于Keras中LSTM的输出问题,在搭建网络时有两个参数,一个是output_dim表示输出的维度,这个参数其实就是确定了四个小黄矩形中权重矩阵的大小。另一个可选参数return_sequence,这个参数表示LSTM返回的时一个时间序列还是最后一个,也就是说当return_sequence=True时返回的是(samples, time_steps, output_dim)的3D张量,如果return_sequence=Flase时返回的是(samples, output_dim)的2D张量。比如输入shape=(N, 2, 8),同时output_dim=32,当return_sequence=True时返回(N, 2, 32);当return_sequence=False时返回(N, 32),这里表示的时输出序列的最后一个输出。

    多层LSTM

    使用LSTM搭建多层LSTM网络还是比较方便的,我们只需要使用Sequential()进行堆叠即可。

    在进行多层LSTM网络时,需要注意一下几点:

    需要对第一层的LSTM指定input_shape参数。

    将前N-1层LSTM的return_sequence设置为True,保证每一曾都会想下一层传播所有时间步长上的预测,同时保证最后一层的return_sequence为False(如果只需要最后一个输出的话)。

    其实,在第二层时,不用指定input_shape,因为根据上一层的output_dim和当前层的output_dim可以得出当前层中权重矩阵的大小。

    def build_model(lstm_layers, dense_layers):

    model = Sequential()

    model.add(LSTM(output_dim=32,

    input_shape=(2, 3),

    activation='relu',

    return_sequences=True))

    for i in range(lstm_layers - 1):

    model.add(LSTM(output_dim=32 * (i+1),

    activation='relu',

    return_sequences=True))

    for i in range(dense_layers - 1):

    model.add(Dense(output_dim=256,

    activation='relu'))

    model.add(Dropout(0.5))

    model.compile(loss='mae', optimizer='adam', metrics=['accuracy'])

    model.summary()

    return model

    参数lstm_layers=5, dense_layers=3,结果如下:

    _________________________________________________________________

    Layer (type) Output Shape Param #

    =================================================================

    lstm_1 (LSTM) (None, 2, 32) 4608

    _________________________________________________________________

    lstm_2 (LSTM) (None, 2, 32) 8320

    _________________________________________________________________

    lstm_3 (LSTM) (None, 2, 64) 24832

    _________________________________________________________________

    lstm_4 (LSTM) (None, 2, 96) 61824

    _________________________________________________________________

    lstm_5 (LSTM) (None, 2, 128) 115200

    _________________________________________________________________

    dense_1 (Dense) (None, 2, 256) 33024

    _________________________________________________________________

    dropout_1 (Dropout) (None, 2, 256) 0

    _________________________________________________________________

    dense_2 (Dense) (None, 2, 256) 65792

    _________________________________________________________________

    dropout_2 (Dropout) (None, 2, 256) 0

    =================================================================

    Total params: 313,600

    Trainable params: 313,600

    Non-trainable params: 0

    _________________________________________________________________

    参数量计算

    前面提到了LSTM的计算其实和普通神经网络类似,那我们就来推一下参数量,看是否符合我们的预期。

    1. 输入的shape=(N, 2, 3)

    2. 网络结构:

    _________________________________________________________________

    Layer (type) Output Shape Param #

    =================================================================

    lstm_1 (LSTM) (None, 2, 4) 128

    =================================================================

    Total params: 128

    Trainable params: 128

    Non-trainable params: 0

    _________________________________________________________________

    3. 输出的shape=(N, 2, 4)

    首先cell的输出为[2, 4],也就是输出的维度为4(其中2表示步长),输入的数据为[2, 3],所以真正输入cell中的数据维度应该是[2, 7],也就是[2, 3+4](因为要拼接t-1时刻的输出和t时刻的输入);

    接下来每个cell中有四个小黄矩形,也就是四次矩阵乘法,又因为输出的维度是4,所以矩阵乘法就是[2, 7]*[7, 4]=[2, 4],所以一个小黄矩形所需的参数为7x4=28,四个也就是28x4=112;

    最后加上每一个小黄矩形后的激活函数的偏置4x4=16。

    最终,总共的参数值为112+16=128。和程序打印出来的结果一致。

    通过上面的推导我们发现,其实实际的参数量和步长是没有关系的,这一点我也验证了一下,通过改变输入shape=(samples, time_steps, input_dim)中的time_stpes的值,参数量不会发生变化。如下(输入shape=[N, 2, 3],time_steps=10):

    _________________________________________________________________

    Layer (type) Output Shape Param #

    =================================================================

    lstm_1 (LSTM) (None, 10, 4) 128

    =================================================================

    Total params: 128

    Trainable params: 128

    Non-trainable params: 0

    _________________________________________________________________

    参考

    展开全文
  • 但是,你希望能其它属于自己后缀吗?我们一起来研究研究! 首先谈谈ASP.net一些参数传递和页面定向方式 第一,ASP.net是用Page.Navigate()调用新页面URL。Page.Navigate()向浏览器返回了一个http状态码302...
  • 但是,你希望能其它属于自己后缀吗?我们一起来研究研究! 首先谈谈ASP.net一些参数传递和页面定向方式 第一,ASP.net是用Page.Navigate()调用新页面URL。Page.Navigate()向浏览器返回了一个http状态码302...
  • 但是,你希望能其它属于自己后缀吗?我们一起来研究研究!首先谈谈ASP.net一些参数传递和页面定向方式第一,ASP.net是用Page.Navigate()调用新页面URL。Page.Navigate()向浏览器返回了一个http状态码302,...
  • 所以网络优化工程师必须首先了解各个参数的功能、调整范围,且对调整后的结果必须一个深刻的理解,对UE各个过程(如接入、重选和切换等)中所涉及的无线参数具有明确的认识,是其做出优化方案的第一步。...
  • Oracle状态以及相关确认命令Oracle数据库的状态有如下几种状态状态 说明 查询命令 显示状态 SHUTDOWN 数据库属于停止状态 - - NOMOUNT 开始读取参数文件(pfile/spfile)、确保SGA、启动后台进程等 ...
  • ReLU与softplus函数与前图中传统sigmoid系激活函数相比,主要变化三点:①单侧抑制 ②相对宽阔兴奋边界 ③稀疏激活性(重点,可以看到红框里前端状态完全没有激活)。标准sigmoid函数输出不具备
  • 摄像头板GPI的状态,这个属于扩展功能,摄像头工程师是这么做:由于我们摄像头GAMMA值不会被用到,因此当摄像头板检测到GPI电平变化时,它就将 GAMMA对应寄存器值设置成另外一个值,然后我通过V4L2...
  • 贝叶斯决策就是在不完全情报下,对部分未知的状态用主观概率估计,然后用贝叶斯公式对发生概率进行修正,最后再利用期望值和修正概率做出最优决策。  贝叶斯决策理论方法是统计模型决策中一个基本方法,其基本...
  • 用例等级allure对用例等级划分成五个等级blocker 阻塞缺陷(功能未实现,无法下一步)...或者提示不规范)比如我用例以下4条那么对应用例等级应该是修改个人信息-sex参数为空 这个属于边界值情况测试...
  • 使用该命令可以确定哪些进程正在运行和运行的状态、进程是否结束、进程没有僵尸、哪些进程占用了过多资源等等.总之大部分信息都是可以通过执行该命令得到。ps是显示瞬间进程的状态,并不动态连续;如果想对...
  • 隐层和输出层w参数需要随机初始化,否则因为初始状态一致,每次BP之后的状态也都一致,多节点毫无意义 常见激活函数: ,取值范围为0 ~ 1,除了二分类输出层,基本已不用 ,取值范围为-1 ~ 1,并且在绝...
  • netstat命令各个参数说明如下:-t : 指明显示TCP端口-u : 指明显示UDP端口-l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料程序)-p : 显示进程标识符和程序名称,每一个套...
  • 本章之前内容介绍多是规模比较小强化学习问题,生活中许多实际问题要复杂得多,有些是属于状态数量巨大甚至是连续,有些行为数量较大或者是连续。这些问题要是使用前几章介绍基本算法效率会很低,甚至...
  • 详细内容Python类所包含最重要两个成员就是变量和方法,其中类变量属于类本身,用于定义该类本身所包含的状态数据:而实例变量则属于该类对象,用于定义对象所包含的状态数据:方法则用于定义该类对象行为...
  • 12年毕业到先在处理第一年外这几年纯属于打酱油,当初自学Java然后就出来找工作了,还有第一家面试就通过了挺幸运 ...相对而已JVM很多参数,但对于一般开发人员执行知道和堆栈大小,GC、远程调试的参数
  • 在类外部调用该类方法就可以完成相应功能,or 改变类的状态 or 达到其他目的 类中方法和调用与函数定义和调用方式基本相同,区别: 方法第一个参数必须是 self,而且不能省略 方法调用需要实例化类...
  • 或不带有状态参数常数方程额外完美流体宇宙学场景是我们研究两个重要案例。 de Sitter宇宙和理想气体解决方案是通过使用对称发生器不变函数得出,以证明我们结果。 此外,我们讨论了共形变换下不同...
  • 红外发射管应保持清洁、完好状态,尤其是其前端球面形发射部分既不能存在污染物,更不能受到摩擦损伤,否则,发出红外光将产生反射及散射现象,直接影响到红外光辐射,可能会降低遥控灵敏度和遥控距离,也...
  • mybatis的有两种缓存,一级缓存和二级缓存。两个缓存的不同点和相同点总结如下 不同点: 一级缓存存在于一个SqlSession之内,二级缓存存在于不同的SqlSession之间 一级缓存不需要手动开启,属于默认开启状态;二级...
  • sleep()方法属于Thread类,主要作用是让当前线程停止执行,把cpu让给其他线程执行,但不会释放对象锁和监控的状态,到了指定时间后线程又会自动恢复运行状态 注意:线程睡眠到期自动苏醒,并返回到可运行状态,...
  • 这样,就可能获得有关在炎热环境中传播(和强铁化)重夸克如何对其能量密度及其几何不对称性做出反应信息,从而打破了偏心率和冲击参数之间完美关联,而这种完美关联是表征模型模型。 中等平均初始条件...
  • 在μC/OS多任务管理中,每个任务被创建时都会被分配一个属于自己私有堆栈,一个任务控制块(TCB),一个优先级和一些其他参数。当系统调度程序将CPU执行权分配给该任务时,便从该任务私有堆栈中将内容(就是...
  • 红外发射管应保持清洁、完好状态,尤其是其前端球面形发射部分既不能存在污染物,更不能受到摩擦损伤,否则,发出红外光将产生反射及散射现象,直接影响到红外光辐射,可能会降低遥控灵敏度和遥控距离,也...
  • 1、静态域 如果将一个类中域定义为static,则这个域称为静态域,且每个类中只有一个这样域。而每个对象对于所有实例域都...①一个方法不需要访问对象状态,其所需参数都是通过显式参数提供; ②一个方法只需要
  • 研究表明,巷道围岩结构属破碎软岩,围岩成分属于较膨胀软岩至膨胀软岩,底板属于极软弱底板,现有锚网支护条件下围岩不能保持平衡,难进入稳定状态,满足不了该条件下围岩变形。研究结论对该矿巷道支护设计和参数选择...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 276
精华内容 110
关键字:

属于状态参数的有