【问题标题】:Keras is unable to intializeKeras 无法初始化
【发布时间】:2020-01-22 19:44:09
【问题描述】:

我正在尝试使用参数进行初始化,但我收到“init() 得到了意外的关键字参数比例”的错误

我正在使用 keras 进行神经协同过滤,但无法初始化我的参数。

import theano
import theano.tensor as T
import keras
from keras import backend as K
from keras import initializers
from keras.regularizers import l1, l2, l1_l2
from keras.models import Sequential, Model
from keras.layers.core import Dense, Lambda, Activation
from keras.layers import Embedding, Input, Dense, merge, Reshape, Merge, Flatten, Dropout
from keras.optimizers import Adagrad, Adam, SGD, RMSprop
from evaluate import evaluate_model
from Dataset import Dataset
from time import time
import sys
import GMF, MLP
import argparse

#################### Arguments ####################
def parse_args():
    parser = argparse.ArgumentParser(description="Run NeuMF.")
    parser.add_argument('--path', nargs='?', default='Data/',
                        help='Input data path.')
    parser.add_argument('--dataset', nargs='?', default='ml-1m',
                        help='Choose a dataset.')
    parser.add_argument('--epochs', type=int, default=100,
                        help='Number of epochs.')
    parser.add_argument('--batch_size', type=int, default=256,
                        help='Batch size.')
    parser.add_argument('--num_factors', type=int, default=8,
                        help='Embedding size of MF model.')
    parser.add_argument('--layers', nargs='?', default='[64,32,16,8]',
                        help="MLP layers. Note that the first layer is the concatenation of user and item embeddings. So layers[0]/2 is the embedding size.")
    parser.add_argument('--reg_mf', type=float, default=0,
                        help='Regularization for MF embeddings.')                    
    parser.add_argument('--reg_layers', nargs='?', default='[0,0,0,0]',
                        help="Regularization for each MLP layer. reg_layers[0] is the regularization for embeddings.")
    parser.add_argument('--num_neg', type=int, default=4,
                        help='Number of negative instances to pair with a positive instance.')
    parser.add_argument('--lr', type=float, default=0.001,
                        help='Learning rate.')
    parser.add_argument('--learner', nargs='?', default='adam',
                        help='Specify an optimizer: adagrad, adam, rmsprop, sgd')
    parser.add_argument('--verbose', type=int, default=1,
                        help='Show performance per X iterations')
    parser.add_argument('--out', type=int, default=1,
                        help='Whether to save the trained model.')
    parser.add_argument('--mf_pretrain', nargs='?', default='',
                        help='Specify the pretrain model file for MF part. If empty, no pretrain will be used')
    parser.add_argument('--mlp_pretrain', nargs='?', default='',
                        help='Specify the pretrain model file for MLP part. If empty, no pretrain will be used')
    return parser.parse_args()

def init_normal(shape, name=None):
    return initializers.normal(shape, scale=0.01, name=name)

错误:

TypeError: init() 得到了一个意外的关键字参数 'scale'

【问题讨论】:

  • 好吧,你正在初始化的东西实际上有一个参数规模吗?因为错误消息不这么认为。
  • 但是当我取出 scale 参数时,我仍然会遇到一些错误。
  • 也许你得到不同的错误,现在它可能是不同的参数或完全不同的东西的问题 - 所以首先仔细阅读错误消息。
  • 我测试了initializers.normal,它没有使用scale,也没有使用name,只有shape

标签: python machine-learning keras deep-learning


【解决方案1】:

initializers.normal 不包含参数namescale。只有shape

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 2017-06-08
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 2017-03-26
    • 2019-01-05
    • 2018-03-22
    相关资源
    最近更新 更多