我正在使用keras网站上给出的自定义矩阵:
def compute_roc (y_true, y_pred):
y_true =K.eval(y_true)#.eval(session=sess)
y_pred = K.eval(y_pred)#.eval(session=sess)
roc = metrics.roc_curve(y_true, y_pred, pos_label=2)
roc = tf.to_float(roc, name='ToFloat')
return roc
但我得到错误的"K. ava(y_true)"
InvalidArgumentError Traceback (most recent call last)
<ipython-input-7-1de7569967ec> in <module>()
20 #disc.load_weights(os.path.join(path, model_name+'.h5'))
21 sgd = SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)
---> 22 disc.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy',
compute_roc])23#plot_model(model,to_file='model.png')24打印('disc model loaded')
/usr/local/lib/python2.7/dist-packages/keras/engine/training.pyc in compile(self, optimizer, loss, metrics, loss_weights,
sample_weight_modeweighted_metricstarget_tensors**kwargs)912append_metric(metric_namemetric_result)913
/usr/local/lib/python2.7/dist-packages/keras/engine/training.pyc in handle_metrics(metrics, weights)
909 metric_result = weighted_metric_fn(y_true, y_pred,
910 weights=weights,
--> 911 mask=masks[i])
912 append_metric(i, metric_name, metric_result)
913
/usr/local/lib/python2.7/dist-packages/keras/engine/training.pyc in weighted(y_true, y_pred, weights, mask)
424 """
425 # score_array has ndim >= 2
--> 426 score_array = fn(y_true, y_pred)
427 if mask is not None:
428 # Cast the mask to floatX to avoid float64 upcasting in theano
<ipython-input-7-1de7569967ec> in compute_roc(y_true, y_pred)
4
5 def compute_roc (y_true, y_pred):
----> 6 y_true1 =K.eval(y_true)#.eval(session=sess)
7 # y_pred1 = K.eval(y_pred)#.eval(session=sess)
8 roc = 0#metrics.roc_curve(y_true, y_pred, pos_label=2)
/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.pyc
在世纪(x)658'659 """ --
/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc
在评估(自我、反馈、会话)539 540“--
/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.pyc
在使用默认会话(张量、提要、图表、会话)的_eval_4083中,“张量的图表与会话的“4084”图表不同。”)-
/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc
在运行(自我,获取,feed_dict,选项,run_metadata)893尝试: 894结果=自我。_run(无,获取,feed_dict,options_ptr,-
/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc
在_run(自我,处理,获取,feed_dict,选项,run_metadata)1122如果final_fetches或final_targets或(处理和feed_dict_tensor):1123结果=自我。_do_run(处理,final_targets,final_fetches,-
/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc
在_do_run(自我,句柄,target_list,fetch_list,feed_dict,选项,run_metadata)1319如果句柄为无:1320返回自我。_do_call(_run_fn,自我。_session,提要,获取,目标,-
/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc
在_do_call(自我,fn,*args)1338除了KeyError: 1339通过-
InvalidArgumentError: You must feed a value for placeholder tensor 'dense_6_target' with dtype float and shape [?,?]
[[Node: dense_6_target = Placeholder[dtype=DT_FLOAT, shape=[?,?], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]
[[Node: dense_6_target/_833 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0",
send_device=“/job:localhost/replica:0/task:0/gpu:0”,send_device_化身=1,tensor_name=“edge_4_densite_6_target”,tensor_type=DT_FLOAT,_device=“/job:localhost/replica:0/task:0/cpu:0”]()]
Caused by op u'dense_6_target', defined at:
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py", line
16,应用程序内。在launch_instance app中的第658行启动新实例()文件“/usr/local/lib/python2.7/dist packages/traitlets/config/application.py”。start()文件“/usr/local/lib/python2.7/dist packages/ipykernel/kernelapp.py”,第478行,在start self中。io_环。start()文件“/usr/local/lib/python2.7/dist packages/zmq/eventloop/ioloop.py”,第177行,在start super(ZMQIOLoop,self)中。start()文件“/usr/local/lib/python2.7/dist packages/tornado/ioloop.py”,第888行,在start handler_func(fd_obj,events)文件“/usr/local/lib/python2.7/dist packages/tornado/stack_context.py”中,第277行,在空包装返回fn(*args,**kwargs)文件“/usr/local/lib/python2.7/dist packages/eventloop/zmqstream.py”,第440行,自己处理事件_handle_recv()文件“/usr/local/lib/python2.7/dist packages/zmq/eventloop/zmqstream.py”,第472行,在handle_recv self中_运行回调(callback,msg)文件“/usr/local/lib/python2.7/dist packages/zmq/eventloop/zmqstream.py”,第414行,在运行回调回调(*args,**kwargs)文件“/usr/local/lib/python2.7/dist packages/tornado/stack_context.py”,第277行,在空包装返回fn(*args,**kwargs)文件“/usr/local/lib/python2.7/dist packages/ipykernel/kernel/kerbase.py”中,第283行,调度员返回自我。在execute\u request user\u表达式中的dispatch\u shell handler(stream,idents,msg)文件“/usr/local/lib/python2.7/dist packages/ipykernel/kernelbase.py”,第233行“/usr/local/lib/python2.7/dist packages/ipykernel/kernelbase.py”,第399行,do_execute res=shell中的allow_stdin)File“/usr/local/lib/python2.7/dist packages/ipykernel/ipkernel.py”,第208行。运行单元(代码,存储单元历史=存储单元历史,静默=静默)文件“/usr/local/lib/python2.7/dist packages/ipykernel/zmqshell.py”,第537行,运行单元返回超级(ZMQInteractiveShell,self)。运行单元(*args,**kwargs)文件“/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py”,第2718行,在运行单元交互=交互,编译器=编译器,结果=结果)文件“/usr/local/lib/python2.7/dist-packages/IPython/core/interactiveshell.py”,第2822行,在运行单元节点中(如果自身)。运行代码(代码,结果):文件“/usr/local/lib/python2.7/dist packages/IPython/core/interactiveshell.py”,第2882行,在光盘的运行代码执行文件(代码obj,self.user\u global\n,self.user\n)第22行。编译(loss='classifical\u crossentropy',optimizer=sgd,metrics=['accurity',compute\u roc])文件/usr/local/lib/python2.7/dist packages/keras/engine/training.py”,第722行,在compile dtype=K.dtype(self.outputs[i])文件/usr/local/lib/python2.7/dist packages/keras/backend/tensorflow\u backend.py中,占位符x=tf中的第504行。占位符(dtype,shape=shape,name=name)文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/ops/array\u ops.py”,第1548行,在占位符返回gen\u array\u ops中_占位符(dtype=dtype,shape=shape,name=name)文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/ops/gen_array_ops.py”,第2094行,在_占位符name=name)文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/framework/op_def_library.py”,第767行,在create_op original_op=self中的apply_op_def=op_def)文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/framework/ops.py”第2630行中_默认的_original_op,op_def=op_def)文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/framework/ops.py”,第1204行,在init self中_回溯=自我_图表_extract_stack()35; pylint:disable=受保护的访问
InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'dense_6_target' with dtype float and
形状[?,?][[Node:dense_6_target=Placeholder dType=DT_FLOAT,shape=[?,?]_device=“/job:localhost/replica:0/task:0/gpu:0”][[Node:densite_6_target/\u 833=\u Recvclient_terminated=false,recv_device=“/job:localhost/replica:0/task:0/cpu:0”,send_device_化身=1,tensor_name=“edge_4_densite__6_target”,tensor_type=DT_FLOAT,/u device=“/job:localhost/replica:0/cpu:0”]]
另一种方法是在每个纪元的末尾计算“y_pred”,并计算roc。
您有两个选择:
>
在这种情况下,您需要通过将列车生成器传递给回调函数来获取批处理x、批处理y,然后通过模型计算批处理开始时的批处理pred
。预测(batch_x)然后在(on_epoch_end)回调中累积它,然后使用您的函数计算AUC
。
使用tf在Keras中构建自定义度量。计量auc
AUC,update_op=tf。米制的auc(是真实的,是预测的)
在这种情况下,不需要计算每个批次的y_pred。只需构建自定义度量函数并将其传递给回调函数。您需要确保为每个批次更新(update_op),因为Auc度量需要在历元结束时计算,而不是在批次级别上计算。
您也可以在这里查看Tom的评论,在这里您可以找到上述建议的示例代码。然而,他们指的是tf。contrib。韵律学。已弃用并由tf取代的流式_auc。米制的auc
问题内容: 我正在尝试编写一种算法,用于在给定的子矩阵中查找子矩阵。为了解决这个问题,我编写了以下代码: 这段代码可以正常工作,但是我不确定这是问题的确切解决方案还是可以解决。请提供您的专家意见。提前致谢。 问题答案: 该算法对4×4矩阵和2×2子矩阵进行了硬编码。否则,它看起来像蛮力算法。 我会这样表示: 如果您想要更有效的方法,建议您将它们压扁,如下所示: 并在此序列中搜索以下模式: 使用标准
我试图使用斯皮尔曼秩相关系数来编写一个自定义损失函数。我想计算每对y_true和y_pred样本之间的Spearman秩相关系数(每个样本是由8个元素组成的数组;例如,[1 2 3 4 5 6 7 8]和[3 2 1 4 5 6 7])。 我遵循了这个答案的指示(如何在Tensorflow中计算Spearman相关性)和Keras留档(https://keras.io/api/losses/),但
我正在尝试使用Keras中的全连接层架构进行二分类,在Keras中称为密集类。 这是我创建的神经网络架构的设计: 因此,我有一个170002000的输入矩阵,其中17K个样本具有2k个特征。 我只保留了一个包含32个单位或神经元的隐藏层。 我的输出层是一个带有乙状结肠激活函数的单神经元。 现在,当我尝试检查第一个隐藏层的权重时,我希望它的大小是(2000,32),其中每行代表每个输入,每列代表该层
我正在训练一个神经网络来计算3x3矩阵的逆。我使用的是一个具有1层和9个神经元的Keras密集模型。第一层上的激活函数为“relu”,输出层上的激活函数为线性。我正在使用10000个行列式1的矩阵。我得到的结果不是很好(RMSE有数百个)。我一直在尝试更多的层次、更多的神经元和其他激活功能,但收获很小。代码如下: 我在网上查过,似乎有关于逆矩阵近似问题的论文。然而,在更改模型之前,我想知道是否还有
着色器语言中通过关键字mat2、mat3、mat4分别声明一个2x2矩阵、3x3矩阵、4x4矩阵,通过内置函数mat2()、mat3()、mat4()分别创建一个2x2矩阵、3x3矩阵、4x4矩阵。 关键字 数据类型 mat2 2x2矩阵,4个元素 mat3 3x3矩阵,9个元素 mat4 4x4矩阵,16个元素 声明变量 关键子mat4声明一个4x4矩阵 mat4 matrix4; 构造函数赋
我在Tensorflow后端使用Keras。我想创建一个自定义损失函数,它将获得两个直方图之间的欧几里德距离,但我得到了以下错误: TypeError:“Mul”Op的输入“y”的类型float32与参数“x”的类型int32不匹配。 因此,我不知道如何定义我的损失函数。 我试图修改代码,但我得到另一个错误。“h_true=tf.cast(h_true,dtype=tf.dtypes.float3
我训练了一名CNN,将图像分为5类。但是,当我试图绘制每个类别相对于其他类别的曲线时,所有5个类别几乎都有一条对角线曲线,其约为0.5。我不知道出了什么问题。 该模型的准确率应该在86%左右。 代码如下: "prediction_prob"变量包含: 而“正确”变量包含每个测试图像的正确标签: 我想我遵循了网站上提到的内容。 生成的tpr[i]和fpr[i]变量变为线性相关,因此AUC变为0.5
我使用Stanford NLP文本分类器(ColumnDataClassifier)从我的Java代码。我有两个主要问题。