Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将我的培训数据上传到谷歌进行Tensorflow云培训_Python_Tensorflow_Google App Engine_Google Cloud Platform_Gcp Ai Platform Training - Fatal编程技术网

Python 如何将我的培训数据上传到谷歌进行Tensorflow云培训

Python 如何将我的培训数据上传到谷歌进行Tensorflow云培训,python,tensorflow,google-app-engine,google-cloud-platform,gcp-ai-platform-training,Python,Tensorflow,Google App Engine,Google Cloud Platform,Gcp Ai Platform Training,我想在gcp中训练我的keras模型 我的代码: 这就是我加载数据集的方式 dataset = pandas.read_csv('USDJPY.fx5.csv', usecols=[2, 3, 4, 5], engine='python') 这就是我触发云训练的方式 job_labels = {"job": "forex-usdjpy", "team": "xxx", "user": "

我想在gcp中训练我的keras模型

我的代码:

这就是我加载数据集的方式

dataset = pandas.read_csv('USDJPY.fx5.csv', usecols=[2, 3, 4, 5], engine='python')
这就是我触发云训练的方式

job_labels = {"job": "forex-usdjpy", "team": "xxx", "user": "xxx"}
tfc.run(requirements_txt="./requirements.txt",
        job_labels=job_labels,
        stream_logs=True
        )
就在我的模型之前,应该没什么区别

model = Sequential()
model.add(LSTM(4, input_shape=(1, 4)))
model.add(Dropout(0.2))
model.add(Dense(4))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=1, batch_size=1, verbose=2)
一切正常,正在为我的模型创建docker图像,但未上载USDJPY.fx5.csv文件。 所以我得到文件找不到错误

将自定义文件加载到培训作业中的正确方法是什么?
我将列车数据上传到s3存储桶,但我无法告诉谷歌去那里查看。

结果是我的GCP配置有问题 以下是我为使其工作而采取的步骤:

  • 创建一个s3 bucket并公开其中的所有文件,以便train作业可以访问它们

  • 在fsspec和gcsfs要求中包括这两项

  • 从panda.readCsv中删除“engine”参数,如下所示

    dataset=pandas.read_csv('gs:///USDJPY.fx5.csv',usecols=[2,3,4,5])

由于您正在将python文件上载到GCP,这是一种组织代码的好方法,因此可以将所有训练逻辑放入一个方法中,然后在cloud train标志上有条件地调用它:

if tfc.remote():
    train()
如果有人感兴趣,下面是完整的工作代码

import pandas
import numpy
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers import Dropout
from sklearn.preprocessing import MinMaxScaler
import tensorflow_cloud as tfc
import os

os.environ["PATH"] = os.environ["PATH"] + ":<path to google-cloud-sdk/bin"
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "<path to google credentials json (you can generate this through their UI"


def create_dataset(data):
    dataX = data[0:len(data) - 1]
    dataY = data[1:]
    return numpy.array(dataX), numpy.array(dataY)

def train():
    dataset = pandas.read_csv('gs://<bucket>/USDJPY.fx5.csv', usecols=[2, 3, 4, 5])

    scaler = MinMaxScaler(feature_range=(-1, 1))
    scaler = scaler.fit(dataset)

    dataset = scaler.transform(dataset)

    # split into train and test sets
    train_size = int(len(dataset) * 0.67)
    train, test = dataset[0:train_size], dataset[train_size:len(dataset)]

    trainX, trainY = create_dataset(train)

    trainX = numpy.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))

    model = Sequential()
    model.add(LSTM(4, input_shape=(1, 4)))
    model.add(Dropout(0.2))
    model.add(Dense(4))
    model.compile(loss='mean_squared_error', optimizer='adam')
    model.fit(trainX, trainY, epochs=1000, verbose=1)


job_labels = {"job": "forex-usdjpy", "team": "zver", "user": "zver1"}
tfc.run(requirements_txt="./requirements.txt",
        job_labels=job_labels,
        stream_logs=True
        )

if tfc.remote():
    train()
导入熊猫
进口numpy
从keras.models导入顺序
从keras.layers导入稠密
从keras.layers导入LSTM
从keras.layers导入退出
从sklearn.preprocessing导入MinMaxScaler
将tensorflow_云作为tfc导入
导入操作系统

os.environ[“PATH”]=os.environ[“PATH”]+”:您尝试过云存储吗?将您的文件放在那里,并使用前缀更改文件位置
gs:///pah/to/file.csv
@guillaumeblaquiere是的,这是一个权限/可视性问题。谢谢