小编run*_*run的帖子

ValueError:形状(无,1)和(无,2)不兼容

我正在训练一个面部表情(愤怒 vs 快乐)模型。最后一个密集输出层以前是 1,但是当我预测图像时,它的输出始终为 1,准确度为 64%。所以我将其更改为 2 以获取 2 个输出。但现在我收到这个错误::

Epoch 1/15

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

ValueError                                Traceback (most recent call last)

<ipython-input-54-9c7272c38dcb> in <module>()
     11     epochs=epochs,
     12     validation_data = val_data_gen,
---> 13     validation_steps = validation_steps,
     14 
     15 )

10 frames

/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/func_graph.py in wrapper(*args, **kwargs)
    966           except Exception as e:  # pylint:disable=broad-except
    967             if hasattr(e, "ag_error_metadata"):
--> 968               raise e.ag_error_metadata.to_exception(e)
    969             else:
    970               raise

ValueError: in user code:

    /usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/training.py:571 train_function  *
        outputs = self.distribute_strategy.run(
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:951 run  **
        return self._extended.call_for_each_replica(fn, args=args, kwargs=kwargs)
    /usr/local/lib/python3.6/dist-packages/tensorflow/python/distribute/distribute_lib.py:2290 call_for_each_replica …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow cnn

24
推荐指数
5
解决办法
7万
查看次数

Pandas - Python,基于Date列删除行

我正在尝试根据一个日期列删除数据帧的行; [Delivery Date]

我需要删除超过6个月但不等于'1970'年份的行.

我创建了2个变量:

from datetime import date, timedelta
sixmonthago = date.today() - timedelta(188)

import time
nineteen_seventy = time.strptime('01-01-70', '%d-%m-%y')
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用[Delivery Date]列来删除基于这两个变量的行.

有人能提供正确的解决方案吗?

python datetime date pandas

13
推荐指数
1
解决办法
2万
查看次数

如何绘制keras实验的学习曲线?

我正在使用keras训练RNN,并希望了解验证准确度如何随数据集大小而变化.Keras val_acc在其历史对象中有一个名单,该列表在每个时期之后附加,具有相应的验证集准确性(链接到google组中的帖子).我想获得val_acc运行时期数的平均值,并根据相应的数据集大小进行绘制.

问题:如何检索val_acc列表中的元素并执行类似的操作numpy.mean(val_acc)


编辑:正如@runDOSrun所说,得到val_accs 的意思是没有意义的.让我专注于进入决赛val_acc.

我尝试了@nemo的建议,但没有运气.这是我打印时得到的

model.fit(X_train, y_train, batch_size = 512, nb_epoch = 5, validation_split = 0.05).__dict__

输出:

{'model': <keras.models.Sequential object at 0x000000001F752A90>, 'params': {'verbose': 1, 'nb_epoch': 5, 'batch_size': 512, 'metrics': ['loss', 'val_loss'], 'nb_sample': 1710, 'do_validation': True}, 'epoch': [0, 1, 2, 3, 4], 'history': {'loss': [0.96936064512408959, 0.66933631673890948, 0.63404161288724303, 0.62268789783555867, 0.60833334699708819], 'val_loss': [0.84040999412536621, 0.75676006078720093, 0.73714292049407959, 0.71032363176345825, 0.71341043710708618]}}
Run Code Online (Sandbox Code Playgroud)

事实证明val_acc,我的历史词典中没有列表.

问题:如何val_acchistory字典中加入?

machine-learning neural-network cross-validation keras recurrent-neural-network

10
推荐指数
2
解决办法
1万
查看次数

将元组字符串转换为字符串元组

我的意见是:

input = ['(var1, )', '(var2,var3)']
Run Code Online (Sandbox Code Playgroud)

预期产出是:

output = [('var1', ), ('var2','var3')]
Run Code Online (Sandbox Code Playgroud)

迭代输入并在元组字符串上使用eval/ literal_eval是不可能的:

>>> eval('(var1, )')
>>> NameError: name 'var1' is not defined
Run Code Online (Sandbox Code Playgroud)

如何将项目转换为'(var1, )'元组,其中内部对象被视为字符串而不是变量?

有没有比编写解析器或使用正则表达式更简单的方法?

python

7
推荐指数
2
解决办法
472
查看次数

重绘动画的Seaborn数字

一些seaborn方法,比如JointPlot 在每次调用时创建新数据.这使得无法创建一个简单的动画,例如matplotlib迭代调用plt.cla()plt.clf()允许更新图形内容而不必每次都关闭/打开窗口.

我目前看到的唯一解决方案是:

for t in range(iterations):
    # .. update your data ..

    if 'jp' in locals():
        plt.close(jp.fig)

    jp = sns.jointplot(x=data[0], y=data[1])
    plt.pause(0.01)
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为我们在创建新窗口之前关闭了上一个窗口.但当然,这远非理想.

有没有更好的办法?可以某种方式直接在先前生成的Figure对象上完成绘图吗?或者有没有办法阻止这些方法在每次调用时生成新数据?

python matplotlib seaborn

6
推荐指数
2
解决办法
3404
查看次数

根据命名约定,带有"has"前缀的Java布尔setter

简单的问题,但我无法理解.

is前缀的示例:

private boolean active;

public boolean isActive(){...};//getter

public boolean setActive(boolean b){...};//setter
Run Code Online (Sandbox Code Playgroud)

但我不明白如何用has前缀做setter

private boolean hasChildren;

public boolean hasChildren(){...};//getter

public boolean  ?(boolean b){...}//setter
Run Code Online (Sandbox Code Playgroud)

java naming-conventions

4
推荐指数
1
解决办法
3453
查看次数

Python 中如何解压嵌套元组?

尝试将数据结构中的值(如t = (("foo",),)变量)分配给变量,我发现以下方法有效:

((var,),) = t   # or [[var]] = t
Run Code Online (Sandbox Code Playgroud)

我想知道它是如何运作的。Python 是否在左侧创建元组/列表?
对来源中相关部分的引用也将不胜感激。

python variable-assignment

3
推荐指数
1
解决办法
2453
查看次数

多类神经网络问题

我一直试图实现反向传播神经网络一段时间,我一次又一次地面临问题.到目前为止的进展是我的神经网络适用于XOR,AND和OR.

下图显示我的神经网络训练超过100000次迭代的XOR,它似乎收敛良好.为此,我有2个输入神经元和一个输出神经元,隐藏层有2个神经元[虽然1已经足够] 在此输入图像描述

现在我正在向前推进训练相同的网络,将XY平面中的坐标分成两个类,其中2个输入神经元和1个输出神经元的结构相同,单个隐藏层有两个神经元: 数据集 在此输入图像描述

对于接下来的训练我只训练了两个班级,但是有2个输出神经元,并保持结构的其余部分相同,这段时间需要很长时间才能收敛但是确实如此. 在此输入图像描述 但现在我增加到三个班级; A类将是100而B类将是010而C类将是001但现在当我训练它时它永远不会收敛并给出以下数据如下所示: 在此输入图像描述 在此输入图像描述

它似乎永远不会收敛.我已经观察到这种模式,如果我增加输出层中的神经元数量,错误率会像任何东西一样增加?我可以指引我到哪里出错吗?

java backpropagation neural-network

3
推荐指数
1
解决办法
490
查看次数

了解感知器

我刚刚开始了一个机器学习课,我们去了Perceptrons.对于家庭作业,我们应该:"选择适当的训练和测试两个维度的数据集(平面).使用10个数据点进行训练,5个进行测试."然后我们应该编写一个程序,使用感知器算法和输出:

  • 关于训练数据点是否可线性分离的评论
  • 关于测试点是否可线性分离的评论
  • 你最初选择的权重和常数
  • 最终解方程(决策边界)
  • 您的算法所做的权重更新总数
  • 在训练集上进行的迭代总数
  • 对训练数据以及测试数据的最终错误分类错误(如果有的话)

我已经多次阅读了本书的第一章,但我仍然无法完全理解感知器.

我知道你改变了权重,如果一个点被错误分类,直到没有错误分类,我想我无法理解的是

  1. 我如何使用测试数据以及它与训练数据的关系如何?
  2. 我怎么知道一个点是否被错误分类?
  3. 如何选择测试点,训练点,阈值或偏差?

如果没有我的书提供好的例子,我真的很难知道如何构成其中的一个.你可以告诉我,我很失落,任何帮助都会非常感激.

algorithm artificial-intelligence machine-learning perceptron neural-network

2
推荐指数
1
解决办法
2419
查看次数

陷入无限循环

我正在尝试在python中创建一个程序,将十进制数转换为十六进制数.当我运行程序时,它给了我正确的转换,但它在无限循环上运行.我不确定无限循环在哪里发生.这是我的代码:

def remainderToHex(remainder):
    if remainder <= 9:
        remainder = str (remainder)
    elif remainder == 10:
        remainder = "A"
    elif remainder == 11:
        remainder = "B"
    elif remainder == 12:
        remainder = "C"
    elif remainder == 13:
        remainder = "D"
    elif remainder == 14:
        remainder = "E"
    elif remainder == 15:
        remainder = "F"
    return remainder

def decToHex(decNum):
    hexNum = ""
    quotient = decNum
    divNum=16
    if quotient == 0:
        hexNum = 0
    while quotient > 0:
        remainder = quotient % divNum …
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
160
查看次数