да, у fashion mnist нет next_batch или чего-то еще, что вы можете использовать генератор для пакетной итерации:
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
batchs=(train_images[i*100:(i+1)*100],train_labels[i*100:(i+1)*100] for i in range(int(len(train_labels)/100)))
batch_xs, batch_ys=batchs.__next__()
, но вам не нужны данные разделения для пакетов в кератах. Метод fit () имеет параметр batch_size
Мы используем rs.exe, после того как мы разработали сценарий, мы имеем не нужный для касания его больше, он просто работает.
Вот источник (я немного изменил его вручную для удаления уязвимых данных без шанса протестировать его, надеяться, что я ничего не тормозил), он развертывает отчеты и связанные изображения от подкаталогов для различных языков. Также источник данных создается.
'=====================================================================
' File: PublishReports.rss
'
' Summary: Script that can be used with RS.exe to
' publish the reports.
'
' Rss file spans from beginnig of this comment to end of module
' (except of "End Module").
'=====================================================================
Dim langPaths As String() = {"en", "cs", "pl", "de"}
Dim filePath As String = Environment.CurrentDirectory
Public Sub Main()
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
'Create parent folder
Try
rs.CreateFolder(parentFolder, "/", Nothing)
Console.WriteLine("Parent folder created: {0}", parentFolder)
Catch e As Exception
Console.WriteLine(e.Message)
End Try
PublishLanguagesFromFolder(filePath)
End Sub
Public Sub PublishLanguagesFromFolder(ByVal folder As String)
Dim Lang As Integer
Dim langPath As String
For Lang = langPaths.GetLowerBound(0) To langPaths.GetUpperBound(0)
langPath = langPaths(Lang)
'Create the lang folder
Try
rs.CreateFolder(langPath, "/" + parentFolder, Nothing)
Console.WriteLine("Parent lang folder created: {0}", parentFolder + "/" + langPath)
Catch e As Exception
Console.WriteLine(e.Message)
End Try
'Create the shared data source
CreateDataSource("/" + parentFolder + "/" + langPath)
'Publish reports and images
PublishFolderContents(folder + "\" + langPath, "/" + parentFolder + "/" + langPath)
Next 'Lang
End Sub
Public Sub CreateDataSource(ByVal targetFolder As String)
Dim name As String = "data source"
'Data source definition.
Dim definition As New DataSourceDefinition
definition.CredentialRetrieval = CredentialRetrievalEnum.Store
definition.ConnectString = "data source=" + dbServer + ";initial catalog=" + db
definition.Enabled = True
definition.EnabledSpecified = True
definition.Extension = "SQL"
definition.ImpersonateUser = False
definition.ImpersonateUserSpecified = True
'Use the default prompt string.
definition.Prompt = Nothing
definition.WindowsCredentials = False
'Login information
definition.UserName = "user"
definition.Password = "password"
Try
'name, folder, overwrite, definition, properties
rs.CreateDataSource(name, targetFolder, True, definition, Nothing)
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
Public Sub PublishFolderContents(ByVal sourceFolder As String, ByVal targetFolder As String)
Dim di As New DirectoryInfo(sourceFolder)
Dim fis As FileInfo() = di.GetFiles()
Dim fi As FileInfo
Dim fileName As String
For Each fi In fis
fileName = fi.Name
Select Case fileName.Substring(fileName.Length - 4).ToUpper
Case ".RDL"
PublishReport(sourceFolder, fileName, targetFolder)
Case ".JPG", ".JPEG"
PublishResource(sourceFolder, fileName, "image/jpeg", targetFolder)
Case ".GIF", ".PNG", ".BMP"
PublishResource(sourceFolder, fileName, "image/" + fileName.Substring(fileName.Length - 3).ToLower, targetFolder)
End Select
Next fi
End Sub
Public Sub PublishReport(ByVal sourceFolder As String, ByVal reportName As String, ByVal targetFolder As String)
Dim definition As [Byte]() = Nothing
Dim warnings As Warning() = Nothing
Try
Dim stream As FileStream = File.OpenRead(sourceFolder + "\" + reportName)
definition = New [Byte](stream.Length) {}
stream.Read(definition, 0, CInt(stream.Length))
stream.Close()
Catch e As IOException
Console.WriteLine(e.Message)
End Try
Try
'name, folder, overwrite, definition, properties
warnings = rs.CreateReport(reportName.Substring(0, reportName.Length - 4), targetFolder, True, definition, Nothing)
If Not (warnings Is Nothing) Then
Dim warning As Warning
For Each warning In warnings
Console.WriteLine(warning.Message)
Next warning
Else
Console.WriteLine("Report: {0} published successfully with no warnings", targetFolder + "/" + reportName)
End If
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
Public Sub PublishResource(ByVal sourceFolder As String, ByVal resourceName As String, ByVal resourceMIME As String, ByVal targetFolder As String)
Dim definition As [Byte]() = Nothing
Dim warnings As Warning() = Nothing
Try
Dim stream As FileStream = File.OpenRead(sourceFolder + "\" + resourceName)
definition = New [Byte](stream.Length) {}
stream.Read(definition, 0, CInt(stream.Length))
stream.Close()
Catch e As IOException
Console.WriteLine(e.Message)
End Try
Try
'name, folder, overwrite, definition, MIME, properties
rs.CreateResource(resourceName, targetFolder, True, definition, resourceMIME, Nothing)
Console.WriteLine("Resource: {0} with MIME {1} created successfully", targetFolder + "/" + resourceName, resourceMIME)
Catch e As Exception
Console.WriteLine(e.Message)
End Try
End Sub
Вот пакет для вызова rs.exe:
SET ReportServer=%1
SET DBServer=%2
SET DBName=%3
SET ReportFolder=%4
rs -i PublishReports.rss -s %ReportServer% -v dbServer="%DBServer%" -v db="%DBName%" -v parentFolder="%ReportFolder%" >PublishReports.log 2>&1
pause
Хорошо не действительно изящный. Мы создали наш собственный инструмент, который использует reportingservices2005 веб-сервис. Мы нашли, что это было самым надежным способом получить то, что мы хотим.
Это не действительно настолько трудно и позволяет Вам развернуть его, чтобы сделать другие вещи как создание источников данных и папок как требуется.
Я знаю, что Вы говорите, что не выступаете за Studio Развития бизнеса, чтобы сделать это, но я нашел, что встроенные инструменты очень надежны и просты в использовании.
Вы изучили какие-либо Непрерывные решения для Интеграции, такие как CruiseControl.NET? Если Вы можете развернуть Отчеты с помощью rs.exe затем, можно установить автоматизированный процесс в CruiseControl, чтобы создать и развернуть Отчеты о таймере или каждый раз, когда отчет изменяется.
Я настоятельно рекомендую RSScripter . Как отмечено в обзоре:
Сценарий служб Reporting Services - это .NET приложение Windows Forms, которое позволяет создавать сценарии и передавать все отчеты Microsoft SQL Server Сервисы каталогизируют элементы, чтобы помочь в переносе их с одного сервера на другой. Его также можно использовать для простого массового перемещения элементов из одной папки Reporting Services в другую на том же сервере . В зависимости от выбранных параметров сценария Scripter служб Reporting Services может также передавать все свойства элементов каталога , такие как описания, параметры истории, параметры выполнения {{1} } (включая расписания для отчетов и общих ), подписки (обычные и на основе данных) и параметры отчетов на стороне сервера.
Я использовал предоставленный сценарий @David , но мне пришлось добавить код (я набираю его как ответ, так как это будет слишком долго для комментария.
Проблема в : если в определении отчета уже есть «общий источник данных», прикрепленный к отчету, это никогда не будет тот же источник данных, который создается в сценарии.
Это также становится очевидным из предупреждения, выдаваемого «CreateReport» "метод:
Набор данных" "относится к общему источнику данных" ", который не публикуется на сервере отчетов.
Таким образом, источник данных должен быть установлен явно позже. Я сделал следующий код изменения:
Я добавил глобальную переменную:
Dim dataSourceRefs(0) As DataSource
В конце метода CreateDataSource эта переменная заполняется:
Dim dsr As New DataSourceReference
dsr.Reference = "/" + parentFolder + "/" + db
Dim ds As New DataSource
ds.Item = CType(dsr, DataSourceDefinitionOrReference)
ds.Name = db
dataSourceRefs(0) = ds
И в методе PublishReport этот источник данных устанавливается явно (после вызова CreateReport):
rs.SetItemDataSources(targetFolder + "/" + reportName.Substring(0, reportName.Length - 4), dataSourceRefs)
Обратите внимание, что этот последний вызов относится только к RS 2005 или выше. Если вы хотите загрузить свои отчеты на сервер RS 2000, вы должны использовать Set Report Источники данных вместо:
rs.SetReportDataSources(targetFolder + "/" + reportName.Substring(0, reportName.Length - 4), dataSourceRefs)