Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 使用Keras后端实现L2规范化?_Tensorflow_Keras_Lambda_Model_Normalization - Fatal编程技术网

Tensorflow 使用Keras后端实现L2规范化?

Tensorflow 使用Keras后端实现L2规范化?,tensorflow,keras,lambda,model,normalization,Tensorflow,Keras,Lambda,Model,Normalization,我想对进入神经网络的输入进行规范化,但是,当我以这种方式定义模型时: df = pd.read_csv(r'C:\Users\Davide Mori\PycharmProjects\pythonProject\Dataset.csv') print(df) target_column = ['W_mag', 'W_phase'] predictors = list(set(list(df.columns)) - set(target_column)) X = df[predictors].v

我想对进入神经网络的输入进行规范化,但是,当我以这种方式定义模型时:

df = pd.read_csv(r'C:\Users\Davide Mori\PycharmProjects\pythonProject\Dataset.csv')
print(df)


target_column = ['W_mag', 'W_phase']
predictors = list(set(list(df.columns)) - set(target_column))
X = df[predictors].values
Y = df[target_column].values

def get_model(n_inputs, n_outputs):
    model = Sequential()
    model.add(Dense(1000,input_dim= n_inputs, activation='relu'))
    #model.add(Lambda(lambda x: K.l2_normalize(x, axis=1)))
    model.add(Dense(1000, activation='linear', activity_regularizer=regularizers.l1(0.0001)))
    model.add(Activation('relu'))
    model.add(Dense(n_outputs, activation='linear'))
    model.compile(optimizer="adam", loss="mean_squared_error", metrics=["mean_squared_error"])
    model.summary()
    return model

n_inputs, n_outputs = X.shape[1], Y.shape[1]
model = get_model(n_inputs, n_outputs)
# fit the model on all data
model.fit(X, Y, epochs=100, batch_size=1)
如何将lambda层应用于输入?注释行位置是否错误?因为如果我把lambda层放在那里,我将规范化已经被第一个隐藏层“转换”的内容,对吗?我怎样才能解决这个问题

这就是我在将lambda层放在其他层之前时遇到的错误:

2020-10-12 15:08:46.036872: I 
tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports 
instructions that this TensorFlow binary was not compiled to use: AVX AVX2
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Program Files\JetBrains\PyCharm 
2020.2.2\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, 
in runfile
pydev_imports.execfile(filename, global_vars, local_vars)  # execute the 
script
File "C:\Program Files\JetBrains\PyCharm 
2020.2.2\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 
18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/Davide Mori/PycharmProjects/pythonProject/prova_rete_sfs.py", 
line 60, in <module>
model = get_model(n_inputs, n_outputs)
File "C:/Users/Davide Mori/PycharmProjects/pythonProject/prova_rete_sfs.py", 
line 52, in get_model
model.summary()
File "C:\Users\Davide Mori\Anaconda3\envs\pythonProject\lib\site- 
packages\tensorflow_core\python\keras\engine\network.py", line 1302, in 
summary
raise ValueError('This model has not yet been built. '
ValueError: This model has not yet been built. Build the model first by 
calling `build()` or calling `fit()` with some data, or specify an 
`input_shape` argument in the first layer(s) for automatic build.
2020-10-12 15:08:46.036872:I
tensorflow/core/platform/cpu\u feature\u guard.cc:142]您的cpu支持
此TensorFlow二进制文件未编译为使用的指令:AVX AVX2
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Program Files\JetBrains\PyCharm
2020.2.2\plugins\python\helpers\pydev\\u pydev\u bundle\pydev\u umd.py“,第197行,
在运行文件中
pydev_imports.execfile(文件名、全局变量、本地变量)#执行
剧本
文件“C:\Program Files\JetBrains\PyCharm
2020.2.2\plugins\python\helpers\pydev\\u pydev\u imps\\u pydev\u execfile.py”,第行
18,在execfile中
exec(编译(内容+“\n”,文件,'exec'),全局,loc)
文件“C:/Users/Davide Mori/PycharmProjects/pythonProject/prova_rete_sfs.py”,
第60行,输入
模型=获取模型(n个输入,n个输出)
文件“C:/Users/Davide Mori/PycharmProjects/pythonProject/prova_rete_sfs.py”,
第52行,在get_模型中
model.summary()
文件“C:\Users\Davide Mori\Anaconda3\envs\pythonProject\lib\site-
packages\tensorflow\u core\python\keras\engine\network.py”,第1302行,在
总结
raise VALUERROR('此模型尚未生成。'
ValueError:尚未生成此模型。请先通过
使用某些数据调用`build()`或`fit()`或指定
`在自动生成的第一层中输入_shape`参数。

为什么不能将此Lambda层作为第一层,即在稠密(1000)之前?我已经在问题中编写了回溯。请在model.summary()之前查看本例。您需要在build命令
model.build(n\u inputs)中显式设置输入大小
写下它给我发送了一个错误:TypeError:“int”对象不是iterabley您的n\u输入应该是一个元组。如果它是一个数字,请尝试使用
model.build((n\u输入,))
(逗号后没有任何内容)