微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Keras.NET 如何使用 KerasIterator

如何解决Keras.NET 如何使用 KerasIterator

我想和 F. Chollet 的 notebook 做同样的事情,但在 C# 中。

但是,我找不到迭代我的 KerasIterator 对象的方法

def extract_features(directory,sample_count):
    features = np.zeros(shape=(sample_count,4,512))
    labels = np.zeros(shape=(sample_count))

    generator = datagen.flow_from_directory(
        directory,target_size=(150,150),batch_size=20,class_mode='binary'
    )

    i = 0
    for inputs_batch,labels_batch in generator:
        features_batch = conv_base.predict(inputs_batch)
        features[i * 20 : (i + 1) * 20] = features_batch
        labels[i * 20 : (i + 1) * 20] = labels_batch

        i += 1
        if i * 20 >= sample_count:
            break

    return features,labels

我当前的 C# 函数如下。

详情:

  • foreach 循环在 KerasIterator 上给我一个“编译器错误 CS1579”
  • for 循环是不可能的,因为 KerasIterator 没有长度(或大小等)
private List<ndarray> ExtractFeatures(ImageDataGenerator datagen,String directory,int sample_count)
{
    // create the return ndarrays
    ndarray features = np.zeros(shape: (sample_count,512));
    ndarray labels = np.zeros(shape: (sample_count,512));

    KerasIterator generator = datagen.FlowFromDirectory(
        directory,target_size: (150,150).ToTuple(),batch_size: 20,class_mode: "binary"
    );

    int i = 0;
    /* how do I iterate on 'generator' here,in a similar way than in Python? */

    // return the List element
    return new List<ndarray> { features,labels };
}

解决方法

截至 2020 年 4 月 19 日,Keras.NET GitHub 页面上的 this 问题中记录的 .NET Wrapper 无法实现

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。