当前位置:首页 » 价格知识 » 用cnn做股票价格keras
扩展阅读
汇量科技股票怎么样 2025-09-14 00:39:09
路由器限制股票交易 2025-09-14 00:19:21

用cnn做股票价格keras

发布时间: 2021-10-13 22:34:49

㈠ Python keras构建CNN

data.py:

#coding:utf-8
"""
Author:wepon
Source:https://github.com/wepe

"""


importos
fromPILimportImage
importnumpyasnp

#读取文件夹mnist下的42000张图片,图片为灰度图,所以为1通道,图像大小28*28
#如果是将彩色图作为输入,则将1替换为3,并且data[i,:,:,:]=arr改为data[i,:,:,:]=[arr[:,:,0],arr[:,:,1],arr[:,:,2]]
defload_data():
data=np.empty((42000,1,28,28),dtype="float32")
label=np.empty((42000,),dtype="uint8")

imgs=os.listdir("./mnist")
num=len(imgs)
foriinrange(num):
img=Image.open("./mnist/"+imgs[i])
arr=np.asarray(img,dtype="float32")
data[i,:,:,:]=arr
label[i]=int(imgs[i].split('.')[0])
returndata,label

由于Keras系统升级,cnn.py代码调整如下:

#coding:utf-8

'''
GPUruncommand:
THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32pythoncnn.py
CPUruncommand:
pythoncnn.py
'''
#导入各种用到的模块组件
from__future__importabsolute_import
from__future__importprint_function
fromkeras.preprocessing.imageimportImageDataGenerator
fromkeras.modelsimportSequential
fromkeras.layers.coreimportDense,Dropout,Activation,Flatten
fromkeras.layers.advanced_activationsimportPReLU
fromkeras.layers.,MaxPooling2D
fromkeras.optimizersimportSGD,Adadelta,Adagrad
fromkeras.utilsimportnp_utils,generic_utils
fromsix.movesimportrange
fromdataimportload_data
importrandom
#加载数据
data,label=load_data()
#打乱数据
index=[iforiinrange(len(data))]
random.shuffle(index)
data=data[index]
label=label[index]
print(data.shape[0],'samples')

#label为0~9共10个类别,keras要求格式为binaryclassmatrices,转化一下,直接调用keras提供的这个函数
label=np_utils.to_categorical(label,10)

###############
#开始建立CNN模型
###############

#生成一个model
model=Sequential()

#第一个卷积层,4个卷积核,每个卷积核大小5*5。1表示输入的图片的通道,灰度图为1通道。
#border_mode可以是valid或者full,具体看这里说明:http://deeplearning.net/software/theano/library/tensor/nnet/conv.html#theano.tensor.nnet.conv.conv2d
#激活函数用tanh
#你还可以在model.add(Activation('tanh'))后加上dropout的技巧:model.add(Dropout(0.5))
model.add(Convolution2D(4,5,5,border_mode='valid',input_shape=(1,28,28)))
model.add(Activation('tanh'))


#第二个卷积层,8个卷积核,每个卷积核大小3*3。4表示输入的特征图个数,等于上一层的卷积核个数
#激活函数用tanh
#采用maxpooling,poolsize为(2,2)
model.add(Convolution2D(8,3,3,border_mode='valid'))
model.add(Activation('tanh'))
model.add(MaxPooling2D(pool_size=(2,2)))

#第三个卷积层,16个卷积核,每个卷积核大小3*3
#激活函数用tanh
#采用maxpooling,poolsize为(2,2)
model.add(Convolution2D(16,3,3,border_mode='valid'))
model.add(Activation('tanh'))
model.add(MaxPooling2D(pool_size=(2,2)))

#全连接层,先将前一层输出的二维特征图flatten为一维的。
#Dense就是隐藏层。16就是上一层输出的特征图个数。4是根据每个卷积层计算出来的:(28-5+1)得到24,(24-3+1)/2得到11,(11-3+1)/2得到4
#全连接有128个神经元节点,初始化方式为normal
model.add(Flatten())
model.add(Dense(128,init='normal'))
model.add(Activation('tanh'))


#Softmax分类,输出是10类别
model.add(Dense(10,init='normal'))
model.add(Activation('softmax'))


#############
#开始训练模型
##############
#使用SGD+momentum
#model.compile里的参数loss就是损失函数(目标函数)
sgd=SGD(l2=0.0,lr=0.05,decay=1e-6,momentum=0.9,nesterov=True)
model.compile(loss='categorical_crossentropy',optimizer=sgd,class_mode="categorical")


#调用fit方法,就是一个训练过程.训练的epoch数设为10,batch_size为100.
#数据经过随机打乱shuffle=True。verbose=1,训练过程中输出的信息,0、1、2三种方式都可以,无关紧要。show_accuracy=True,训练时每一个epoch都输出accuracy。
#validation_split=0.2,将20%的数据作为验证集。
model.fit(data,label,batch_size=100,nb_epoch=10,shuffle=True,verbose=1,show_accuracy=True,validation_split=0.2)


"""
#使用dataaugmentation的方法
#一些参数和调用的方法,请看文档
datagen=ImageDataGenerator(
featurewise_center=True,#setinputmeanto0overthedataset
samplewise_center=False,#seteachsamplemeanto0
featurewise_std_normalization=True,#divideinputsbystdofthedataset
samplewise_std_normalization=False,#divideeachinputbyitsstd
zca_whitening=False,#applyZCAwhitening
rotation_range=20,#(degrees,0to180)
width_shift_range=0.2,#(fractionoftotalwidth)
height_shift_range=0.2,#randomlyshiftimagesvertically(fractionoftotalheight)
horizontal_flip=True,#randomlyflipimages
vertical_flip=False)#randomlyflipimages

#
#(std,mean,)
datagen.fit(data)

foreinrange(nb_epoch):
print('-'*40)
print('Epoch',e)
print('-'*40)
print("Training...")
#
progbar=generic_utils.Progbar(data.shape[0])
forX_batch,Y_batchindatagen.flow(data,label):
loss,accuracy=model.train(X_batch,Y_batch,accuracy=True)
progbar.add(X_batch.shape[0],values=[("trainloss",loss),("accuracy:",accuracy)])

"""

㈡ Keras CNN 对不定长的文本输入该怎么处理

问题已解决,每次产生一个相同长度句子的batch,假设是32大小,只要每个batch里句子是同长度的就可以了,所以我用到了fit_generator,自己手动模拟了一个epoch的过程,遍历了一次训练样本,每个batch的长度是不一致的,随机的,唯一可能不能实现的是同一个batch有不同长度的句子,对于大数据量来说,事实证明,我在lstm模型用我的方法训练和通过padding加masking的方法效果是一致的,唯一的缺点就是,当句子长度范围太大时,相同长度样本少时会比较困难,只要数据量大,样本足够,这种方法可以实现变长序列的处理,而不需要任何的masking

㈢ cnn是上市公司吗

首先我告诉你!上市公司,股票和公司的本质!你的问题将在下半段被解答!
首先来说股票的涨跌对于公司的影响或者说公司的经营对于股票的涨跌!
股票的涨跌影响因素有!
1.公司持续赢利,导致投资者对于公司信心倍增到达购买该公司股票的投资者增多,股票上涨!
2.股票与公司的总资产有密切关系,因为股票等于公司的微量元素!也可以看做,公司是有股票所组成的!持有这种元素多的人,就是控制公司的人!
3.股票的高估值,就是泡沫!这是抄出来的!公司的盈利无法满足股票先有价值,但是股价还是在上升!
好那么我们回过来再看!也就是说,自上市公司上市后,其股市的涨跌收入按道理来说并不归纳在上市公司的收入里了!但是由于上市公司上市,不可能把全部的股票都发行出去,所以股票的涨跌对于上市公司的收入本质还是有关系的,因为上市公司有留存股本,和非流通股!

好 现在 来 讨论 你 的 问题!

一.上市公司分红派息钱是从哪来的?
当然,钱是从这年度的盈利中扣除的!那么我们再来看,股票和公司的盈利能力以及总资产有关系,那么分后过,公司内部总资产当然减少,相对的,公司就要对股价做出相应的调整,这就是除权!好,那么我们要问了,既然这样,那分红和不分红就不是没区别了吗?错了!有区别,区别就在于公司把部分盈利给了股东,公司的意愿并不是你们股东拿了我的分红就把我的股抛了,我是要让你们长期持有,长期享受我们的分红,所以调整股价,是第一,防止资金溢价!虽然我们现在不用考虑把股票换成现钱,但是作为公司,要考虑一点,如果今天我分红了,比如总资产是10W 那么股价也等于10W,而分红过总资产就等于5W了,如果不做响应调整,那么股价还是10W,万一明天我倒闭了,那中间的5W溢价我就没办法支付了,这是法律上的原因,因为每个股东,都享有公司破产后的其资产的分得!讲到这里应该也算充分回答你的问题了吧!
那么来总结下你的问题,
上市公司进入股市的钱,其实这句话就有错误的!因为股市和上市公司是个联合体,并不能独立的来说"进入"!这些分红的钱,当然是公司在本年度里,的所有盈利的部分资金分给持有本公司股权的股东拉!

㈣ 如何从零使用 Keras + TensorFlow 开发一个复杂深度学习模型

Keras 是提供一些高可用的 Python API ,能帮助你快速的构建和训练自己的深度学习模型,它的后端是 TensorFlow 或者 Theano 。本文假设你已经熟悉了 TensorFlow 和卷积神经网络,如果,你还没有熟悉,那么可以先看看这个10分钟入门 TensorFlow 教程和卷积神经网络教程,然后再回来阅读这个文章。

在这个教程中,我们将学习以下几个方面:

  • 为什么选择 Keras?为什么 Keras 被认为是深度学习的未来?

  • 在Ubuntu上面一步一步安装Keras。

  • Keras TensorFlow教程:Keras基础知识。

  • 了解 Keras 序列模型
    4.1 实际例子讲解线性回归问题

  • 使用 Keras 保存和回复预训练的模型

  • Keras API
    6.1 使用Keras API开发VGG卷积神经网络
    6.2 使用Keras API构建并运行SqueezeNet卷积神经网络。

㈤ 我要做一个有关cnn的PPT,哪位大侠可以提供一些关于cnn的市场占有、股市价格、资料越多越好

去wiki网络上查呗 很简单

㈥ 网上找到一个用于EXCEL的VBA代码,能用但是一直不理解,能帮我翻译下吗,谢谢

Sub DoSql()

这个过程名叫DoSql,运行不需要任何参数


Dim cnn As Object

定义cnn 它是是一个对象


Dim rst As Object


Dim Mypath As String, Str_cnn As String, Sqlstr As String

定义了一堆字符串


Dim i As Long

定义i是长整数


Set cnn = CreateObject("adodb.Connection")

简而言之创建了ADOdb连接,你可以理解为启用了一个和不同类型数据库交互的中间组件

ADOdb,就像一根吸管,各种数据库就像是奇形怪状的杯子,正常的杯子从上面的开口取水,如果是瓶颈拧成麻花的杯子可能直接就倒不出来,要特殊的倒法。取数据就像取水,ADOdb做的事情是,只要把吸管放好,就可以取水,而不必掌握不同杯子特殊的倒水方法。


Mypath = ThisWorkbook.FullName

这里是给字符串Mypath赋值,让他等于vba代码所在文件的完整路径,比如这段代码放在了C盘根目录下的123.xlsm里,运行之后Mypath="C:123.xlsm"


If Application.Version < 12 Then

Str_cnn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & Mypath

Str_cnn = provider
Else
Str_cnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source = " & Mypath
End If

这里是在判断excel版本,不同的excel版本使用ADO的时候引擎版本不一样,所以分开设置。

  1. 如果低于office12(其实就是2007)引擎使用OLEDB.4.0,数据源就是Mypath

    给字符串Str_cnn赋值,其实就是指明了Provider和DataSource参数

    Provider其实就是ADO使用的引擎

    DataSource就是数据源

  2. 如果高于office12(高于office2007)

引擎使用OLEDB.12.0,数据源还是Mypath

Str_cnn = provider我也没看懂为什么这么写。

是不是sub 前面有const provider


cnn.Open Str_cnn

连接数据库


Sqlstr = "SELECT * FROM [ListInAdvance$]" '//请在此处写入你的SQL代码
Set rst = cnn.Execute(Sqlstr)

执行了你的sql语句

设置rst为查询到的结果对象


Cells.ClearContents

清除sheet里所有内容,保留格式


For i = 0 To rst.Fields.Count - 1
Cells(1, 1) = rst.Fields(i).Name

Next

遍历结果集,在A1单元格填上域(Field)名,但是其实只保留最后一个。(结果集)


Range("a2").CopyFromRecordset rst '

在以A2为左上角定点的区域里放上查询得出的结果集。


cnn.Close

关闭ADOdb连接


Set cnn = Nothing

释放cnn对象内存


End Sub

㈦ 怎样在win10下安装keras faster-rcnn

2、插上启动U盘,保存退出后重启电脑,会出现启动菜单。如图:
3、选择01进入pe。如图:
4、双击一键装机工具。如图:
5、必须保证机子里或者U盘内有win8.1的ghost系统备份。如图:
6、选择还原分区,如图:
7、按照提示操作,如图:
8、完成后重启电脑,如图:
9、系统安装完成,重启后进入win8.1系统

㈧ python keras CNN训练文字的一位特征向量怎么构造卷积层

keras/imdb_cnn.py at master · fchollet/keras · GitHub
'''This example demonstrates the use of Convolution1D for text classification.
这个例子应该能帮到你
不过分类是 binary 的
要dense 层自己改成 softmax

我自己毕业论文也写了一个 koalaGreener/Character-level-Convolutional-Network-for-Text-Classification-Applied-to-Chinese-Corpus
是把CNN用在文本分类的 不过dataset我是自己构建了新的中文字符和拼音字符,然后做了比较. 文章链接是[1611.04358] Character-level Convolutional Network for Text Classification Applied to Chinese Corpus 仅供参考啦 那时候不会做搜到这个链接也挺茫然的 后来者可以稍微参考一下

㈨ 如何使用 permute layer 将CNN 连接上 LSTM

不是很清楚你要如何处理你的数据。
1. 如果是想用卷积层前处理很多张图片,然而再用LSTM预测这种顺序的图片,那么你的tensor会多一个time_step维度。

但是time_step的维度是为LSTM准备的。进入卷积层之前,你应该会需要将输入reshape。
输入:(samples, time_step, channel, length, width),
channel, length, width不变。将samples, time_step reshape到一个维度上。
keras.layers.core.Reshape((-1, channel, length, width))
变成:(samples*time_step, channel, length, width)

这时再送入卷基层。
卷基层处理完后,你应该还会需要model.add(Flatten()):#(若要保留某维为后用,则用reshape)
变成(samples*time_step, nb_features_from_last_layer_in_cnn )
这时再reshape回来,keras.layers.core.Reshape((samples, time_step, channel, length, width))
然后送入LSTM层处理。
如果还想接feedforward layers,你还需要reshape。
这里的问题是time_step是只在LSTM层需要,其他层time_step可以被看做samples

2. 如果你是想用卷积层中已有的维(比如length、width、channels、filters)作为time_step,那么你需要Permute((, , , ))来调节tensor对应的维。比如将长度作为time step用递归层来抓取特点,单靠permute可以。但是你描述的貌似是多个图片序列,那需要第一种reshape来做。

㈩ keras 怎样做到cnn与rnn连接

At last he got home with the watermelon.