keras generater

本文介绍了一个使用Keras库构建和训练神经网络的例子。通过定义Sequential模型,添加Dense层并使用ReLU和softmax激活函数,模型被配置用于分类任务。数据集由六个样本组成,每个样本包含四个特征。模型训练使用了自定义的数据生成器,通过fit_generator方法进行,同时设置了steps_per_epoch和epochs参数。验证数据集也用于评估模型性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import keras
from keras.models import Sequential
from keras.layers import Dense
import numpy as np
from sklearn.model_selection import train_test_split

count =1    

data=np.array([[1, 2, 0, 1],
               [2, 3, 1, 0],
               [1, 3, 0, 1],
               [1, 4, 0, 1],
               [2, 4, 1, 0],
               [2, 5, 1, 0]])
def generate_arrays_from_file(data):
    global count
    while 1:
        datas =data
        x = datas[:,:2]
        y = datas[:,2:]
        print("count:"+str(count))
#        count = count+1
        yield (x,y)
x_valid = np.array([[1,2],[2,3]])
y_valid = np.array([[0,1],[1,0]])
model = Sequential()
model.add(Dense(units=1000, activation='relu', input_dim=2))
model.add(Dense(units=2, activation='softmax'))
model.compile(loss='categorical_crossentropy',
              optimizer='sgd',
              metrics=['accuracy'])

model.fit_generator(generate_arrays_from_file(data),steps_per_epoch=10, epochs=2,max_queue_size=1,validation_data=(x_valid, y_valid),workers=1)
# steps_per_epoch 每执行一次steps,就去执行一次生产函数generate_arrays_from_file
# max_queue_size 从生产函数中出来的数据时可以缓存在queue队列中
java中使用公钥加密私钥解密原理. KeyGenerater类: public class KeyGenerater { private byte[] priKey; private byte[] pubKey; public void generater() { try { KeyPairGenerator keygen = KeyPairGenerator .getInstance("RSA"); SecureRandom secrand = new SecureRandom(); secrand.setSeed("www.川江号子.cn".getBytes()); // 初始化随机产生器 keygen.initialize(1024, secrand); KeyPair keys = keygen.genKeyPair(); PublicKey pubkey = keys.getPublic(); PrivateKey prikey = keys.getPrivate() pubKey = Base64.encodeToByte(pubkey.getEncoded()); priKey = Base64.encodeToByte(prikey.getEncoded()); System.out.println("pubKey = " + new String(pubKey)); System.out.println("priKey = " + new String(priKey)); } catch (java.lang.Exception e) { System.out.println("生成密钥对失败"); e.printStackTrace(); } } public byte[] getPriKey() { return priKey; } public byte[] getPubKey() { return pubKey; } } Signaturer 类: public class Signaturer { public static byte[] sign(byte[] priKeyText, String plainText) { try { PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decode(priKeyText)); KeyFactory keyf = KeyFactory.getInstance("RSA"); PrivateKey prikey = keyf.generatePrivate(priPKCS8); // 用私钥对信息生成数字签名 Signature signet = java.security.Signature.getInstance("MD5withRSA"); signet.initSign(prikey); signet.update(plainText.getBytes()); byte[] signed = Base64.encodeToByte(signet.sign()); return signed; catch (java.lang.Exception e) { System.out.println("签名失败"); e.printStackTrace(); } return null; } } SignProvider 类: public class SignProvider { private SignProvider() { } public static boolean verify(byte[] pubKeyText, String plainText, byte[] signText) { try { // 解密由base64编码的公钥,并构造X509EncodedKeySpec对象 X509EncodedKeySpec bobPubKeySpec = new X509EncodedKeySpec(Base64.decode(pubKeyText)); // RSA对称加密算法 KeyFactory keyFactory = KeyFactory.getInstance("RSA"); // 取公钥匙对象 PublicKey pubKey = keyFactory.generatePublic(bobPubKeySpec); // 解密由base64编码的数字签名 byte[] signed = Base64.decode(signText); Signature signatureChecker = Signature.getInstance("MD5withRSA"); signatureChecker.initVerify(pubKey); signatureChecker.update(plainText.getBytes()) // 验证签名是否正常 if (signatureChecker.verify(signed))return true; return false; } catch (Throwable e) { System.out.println("校验签名失败"); e.printStackTrace(); return false; } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值